创建共享MFC对话框:常规DLL或MFC扩展DLL

时间:2010-07-15 10:58:07

标签: visual-c++ dll mfc visual-studio-2005

在VC ++ 2005中创建MFC DLL项目时,您将获得一个屏幕“应用程序设置”,可选择带有静态/动态MFC的常规DLL或MFC扩展DLL。

我们想要一个包含几个常见对话框的DLL,因此我们可以在其他项目中使用它们,例如:

CGetNameDlg *dlg = new CGetNameDlg();
dlg->doModal();
string name = dlg->getName();
delete dlg;

我们不确定这是否需要扩展DLL ...如果这些是专门用于添加新控件以增强MFC本身,或者我们只是动态链接到MFC的常规DLL项目,就像我们想要的那样一个EXE项目。

2 个答案:

答案 0 :(得分:1)

你可以将它作为普通的DLL而不是MFC扩展来做,这将是我的首选。

答案 1 :(得分:1)

就个人而言,我会创建一个常规的DLL。我发现常规DLL提供了比扩展DLL更大的代码分离,增加了在每次调用DLL的入口点使用AFX_MANAGE_STATE()宏的复杂性。

如果您设计好您的代码(例如,只向DLL传递本机对象),您可以在普通的win32 app / C#app / VB应用程序中使用相同的DLL而不会遇到任何麻烦。