您的位置:首页 > 其它

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

2010-09-26 15:52 246 查看
如何查看 动态库资源 冲突问题
在调用资源前使用

以下是在 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 参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: