2010-07-15 82 views
0

在VC++ 2005中创建MFC DLL项目时,您将看到一个屏幕“应用程序设置”,其中带有静态/动态MFC的常规DLL或MFC扩展DLL 。创建共享MFC对话框:常规DLL或MFC扩展DLL

我们要包含几个通用对话框DLL中,所以我们可以利用它们在其他项目中,例如:

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

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

+0

这可能对那些仍然有疑问是否选择MFC扩展DLL有所帮助:http://stackoverflow.com/a/3313624/908336 – 2013-04-22 08:19:01

回答

1

个人而言,我会创建一个规则的DLL。我发现一个普通的DLL比扩展DLL提供了更大的代码分离,增加了在每个调用入口点使用AFX_MANAGE_STATE()宏的复杂度。如果你很好地设计你的代码(例如只传递本地对象到/从DLL中),你可以在普通的win32应用程序/ C#应用程序/ VB应用程序中使用相同的DLL,而不会有麻烦。

1

你会很好地做它作为一个常规的DLL而不是一个MFC扩展,将是我的首选。