目录
一.关于宏定义
常见的编译参数VC建立项目时总会定义"Win32"。控制台程序会定义"_CONSOLE",否则会定义"_WINDOWS"。Debug版定义"_DEBUG",Release版定义"NDEBUG"
与MFC DLL有关的编译常数包括:
_WINDLL 表示要做一个用到MFC的DLL
_USRDLL 表示做一个用户DLL(相对MFC扩展DLL而言)
_AFXDLL 表示使用MFC动态链接库的 regular DLL
_AFXEXT 表示要做一个MFC扩展DLL
所以:
Regular, statically linked to MFC _WINDLL,_USRDLL
Regular, using the shared MFC DLL _WINDLL,_USRDLL,_AFXDLL
Extension DLL _WINDLL,_AFXDLL,_AFXEXT
参见:https://blog.youkuaiyun.com/Beyond_the_Dream/article/details/7941469
二.如何把依赖MFC的dll移植成不依赖MFC的库
(1)去掉预定义的宏变量_WINDLL, _MBCS, _AFXDLL ,添加_USERDLL

(2)去掉代码里面的afx.h afxwin.h 等以afx开头的头文件引用
(3)清理代码里面的MFC相关的类型 如CString UNIT 等
本文详细介绍了宏定义在MFC项目中的作用,并提供了一套实用的方案,用于将依赖MFC的DLL转化为独立于MFC的库,包括修改宏定义、去除MFC头文件引用及清理MFC相关类型的步骤。
1285

被折叠的 条评论
为什么被折叠?



