如何查看 动态库资源 加载是否正确问题

如何查看 动态库资源 冲突问题
在调用资源前使用

以下是在 dll 中的定义
CLDCControlDialog * CLDCFilesControl::DoModalPropertyDlg03(HWND hParent)
{
 m_pPropertyDlg = new CFilesPropertyDlg2(CWnd::FromHandle(hParent));
}

以下是 EXE 对 dll的调用

CDialog * CLeadShowView::DoModalPropertyDlg03(CLDCControl40 *pCtrl, CWnd *pEdtWnd)
{
 //AFX_MANAGE_STATE(AfxGetAppModuleState());
 m_pLDCControlDialog = pCtrl->DoModalPropertyDlg03(this->m_hWnd);
}

要判断在dll弹出对话框时,dan当前资源需要做
CLDCControlDialog * CLDCFilesControl::DoModalPropertyDlg03(HWND hParent)
{
 HINSTANCE dll_hInstance = AfxGetResourceHandle(); !!!
 m_pPropertyDlg = new CFilesPropertyDlg2(CWnd::FromHandle(hParent));
}

CDialog * CLeadShowView::DoModalPropertyDlg03(CLDCControl40 *pCtrl, CWnd *pEdtWnd)
{
 HINSTANCE exe_hInstance = AfxGetResourceHandle(); !!!
 m_pLDCControlDialog = pCtrl->DoModalPropertyDlg03(this->m_hWnd);
}

然后只需要看 dll_hInstance 和 exe_hInstance 区别,如果相同,说明调用资源仍然是exe的资源,

dll_hInstance应该等于
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
}

中的hInstance 参数

原文地址:https://www.cnblogs.com/carl2380/p/1919537.html