2010-07-15 81 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擴展,將是我的首選。