如何查看 动态库资源 加载是否正确问题
如何查看 动态库资源 冲突问题
在调用资源前使用
以下是在 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 参数