1、 新建MFC_exe主程序,項目類型選擇MFC->MFC Application。MFC鏈接方式採用靜態鏈接。
2、 新建MFC_dll程序,項目類型選擇MFC->MFC Dll。在Dll Type選項中選擇MFC extention Dll。
3、 爲項目MFC_dll中新增類ClassAdd,在項目MFC_exe中調用該類,編譯。提示錯誤如下:
error LNK2019: unresolved externalsymbol "public: __thiscall ClassAdd::~ClassAdd(void)
修改類ClassAdd的聲明爲class AFX_EXT_CLASS ClassAdd。並在項目MFC_exe的項目依賴項中選擇MFC_dll,即表示項目MFC_exe依賴於MFC_dll。
4、 解決方案編譯成功,至此完成採用動態調用MFC方式的程序。
5、 修改MFC_dll的項目屬性,修改MFC使用方式爲Use MFC in a Static Library。編譯項目MFC_dll,提示錯誤:fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
6、 修改MFC_dll的項目屬性C/C++ -> Code Generation -> Runtime Library, 選擇Multi-threaded Debug DLL (/MDd),如果是Release版本,選擇Multi-threaded DLL (/MD)。編譯項目MFC_dll,提示錯誤:fatal error C1189: #error : Building MFC application with /MD[d] (CRT dllversion) requires MFC shared dll version. Please #define _AFXDLL or do not use/MD[d]。
7、 修改MFC_dll項目下的stdafx.h文件,在該文件頭部增加以下一行內容:#define _AFXDLL,編譯項目MFC_dll成功。
8、 編譯項目MFC_exe,如果成功則結束。如果失敗,按照步驟5、6、7對項目MFC_exe進行設置,設置完畢後,重新編譯項目。