MFC DLL中添加对话框注意事项
2007-11-21 12:35
411 查看
在MFC DLL中添加对话框的例程中注意:
假设DLL文件名是Test.dll;显示对话框的导出函数是ShowDialog();对话框类是CTestDlg
方案一:
void ShowDialog()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());//扩展MFC DLL使用AFX_MANAGE_STATE(AfxGetAppModuleState());
CTestDlg dlg
dlg.DoModal();
}
方案二:
void ShowDialog()
{
HMODULE hDLL=GetModuleHandle("Test.dll");
HINSTANCE hEXE=AfxGetResourceHandle();
AfxSetResourceHandle((HINSTANCE)hDLL);
CTestDlg dlg;
dlg.DoModal();
AfxSetResourceHandle(hEXE);
}
在上述两个方案中:
方案一:
如果是扩展MFC DLL则在对话框工程和单文档工程中使用上述动态连接库都没有问题;
如果是正则MFC DLL则在对话框工程中使用上述动态连接库没有问题,在单文档工程中使用上述动态连接库出现问题;
方案二:
在对话框工程和单文档工程中使用上述动态连接库都没有问题。
(正在慢慢深入中。。。)
假设DLL文件名是Test.dll;显示对话框的导出函数是ShowDialog();对话框类是CTestDlg
方案一:
void ShowDialog()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());//扩展MFC DLL使用AFX_MANAGE_STATE(AfxGetAppModuleState());
CTestDlg dlg
dlg.DoModal();
}
方案二:
void ShowDialog()
{
HMODULE hDLL=GetModuleHandle("Test.dll");
HINSTANCE hEXE=AfxGetResourceHandle();
AfxSetResourceHandle((HINSTANCE)hDLL);
CTestDlg dlg;
dlg.DoModal();
AfxSetResourceHandle(hEXE);
}
在上述两个方案中:
方案一:
如果是扩展MFC DLL则在对话框工程和单文档工程中使用上述动态连接库都没有问题;
如果是正则MFC DLL则在对话框工程中使用上述动态连接库没有问题,在单文档工程中使用上述动态连接库出现问题;
方案二:
在对话框工程和单文档工程中使用上述动态连接库都没有问题。
(正在慢慢深入中。。。)
相关文章推荐
- MFC扩展DLL添加对话框资源时对话框ID是“未声明标识符”
- 在MFC “共享MFC 规则DLL”中(创建MFC DLL中选第一个),使用MFC对话框注意问题
- 在ObjectArx中调用dll中的导出对话框或控件时的注意事项
- 1.MFC中添加新的对话框
- VS2013/MFC编程入门之七(对话框:创建对话框类和添加控件变量)
- 基于MFC的dll中添加DllMain函数,编译时产生_DllMain@12 已经在 XXX.obj 中定义的解决方法
- VS2010 MFC中在对话框上添加工具栏以及工具栏提示信息并改变图标支持256色
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC使用OpenCv注意事项
- MFC对话框添加系统栏图标
- 引用Interop.SQLDMO.dll后的注意事项。
- 基于对话框MFC程序添加状态栏
- MFC对话框应用程序添加自定义消息
- MFC在对话框中添加了一个richedit控件,窗口就不显示了。
- C++开发DLL中使用new和delete注意事项
- listview添加footerview的注意事项
- MFC 基于对话框程序添加菜单项
- 基于对话框的MFC - 添加菜单
- MFC-写Server的步骤和注意事项
- 基于MFC对话框程序中添加菜单栏 (CMenu)