MFC dll 类型是 共享 规则 导出对话框函数使用出错解决办法

来源:互联网 发布:golang教程 pdf 编辑:程序博客网 时间:2024/05/23 02:08

如果dll建立规则是常规或者扩展DLL,必须切换模态,不然Afx前缀的函数都会因为资源不匹配找不到。

可以用下面的代码切换,


void ShowSmtpDlg() {

HINSTANCE oldInstance = AfxGetResourceHandle();
HINSTANCE hInst = GetModuleHandle(_T("..//Debug//Dll2.dll"));
AfxSetResourceHandle(hInst);


CMyDlg dlg;
dlg.DoModal();


AfxSetResourceHandle(oldInstance);

}


或者

void ShowSmtpDlg() {
AFX_MANAGE_STATE(AfxGetStaticModuleState());
//AFX_MANAGE_STATE(AfxGetAppModuleState());  //如果出现dllmain 重定义,就用这个


CPJNSMTPAppDlg test;
test.DoModal();
}



 如果规则是静态,就不存在需要切换资源的问题,原因暂时未深究.

0 0
原创粉丝点击