标签:
参考资料:
https://msdn.microsoft.com/en-us/library/30c674tx.aspx
在上面给出的MSDN链接中,你可以看到四种DLL的定义。这里就不赘述。捡重点的说
区别就在于:
1、如何在VS中创建四种DLL的项目
1.1、NON-MFC DLL
新建项目>VC++>Win32>Win32项目>选择DLL
1.2、Regular DLL Statically/Dynamically linked to MFC
新建项目>VC++>MFC>MFC DLL>选择Statically linked to MFC / Dynamically linked to MFC
1.3、MFC Extension DLL
新建项目>VC++>MFC>MFC DLL>选择MFC Extension DLL
DLLDEMO项目:
举例说明了NON-MFC DLL(AddXxx.dll):导出了C函数,全局变量,非MFC的C++类。
举例说明了Regular DLL Dynamically linked to MFC(Add.dll):导出了C函数,其内部使用MFC创建了一个对话框。
举例说明了MFC Extension DLL(AddExt.dll):导出了C函数,MFC子类,该子类是一个对话框。
测试程序:FontView,点击Print Sample按钮可以测试三种DLL,相关代码在CMainWindow::OnPushButtonClicked中可以看到
下载地址:下载DLLDEMO(待更新)
备注:
在编写AddExt.dll的代码的时候,由于没仔细看MSDN中的说明,在InfoDlgFactoryExt中使用了AFX_MANAGE_STATE从而导致了LNK2005错误(error LNK2005: _DllMain@12 already defined in dllmain.obj)。实际上MFC Extension DLL用不着这个,AFX_MANAGE_STATE是拿给使用了MFC的Regular DLL的。
四种DLL:NON-MFC DLL, Regular DLL Statically/Dynamically Linked to MFC, MFC Extension DLL
标签:
原文地址:http://www.cnblogs.com/qrlozte/p/4852093.html