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

Visual c++ 创建共享MFC对话框:常规DLL或MFC扩展DLL,visual-c++,dll,mfc,visual-studio-2005,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。。。如果这些是专门用于添加新控件以增强M

在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项目一样。

您可以将其作为常规DLL而不是MFC扩展来执行,这将是我的首选。

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


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

这可能对那些仍然对是否选择MFC扩展DLL有疑问的人有所帮助: