目录
一.关于宏定义
常见的编译参数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.csdn.net/Beyond_the_Dream/article/details/7941469
二.如何把依赖MFC的dll移植成不依赖MFC的库
(1)去掉预定义的宏变量_WINDLL, _MBCS, _AFXDLL ,添加_USERDLL
(2)去掉代码里面的afx.h afxwin.h 等以afx开头的头文件引用
(3)清理代码里面的MFC相关的类型 如CString UNIT 等