解决#define _AFXDLL or do not use /MD[d]
·
运行环境:在非MFC程序中,添加MFC支持,静态链接MFC库
这个问题经常出现在尝试使用Visual Studio 较高版本(2008,2010)编辑较低版本(Visual C++ 6.0)时使用“在静态库中使用MFC”的情况。在网上查找方法,无非是“改成在共享DLL中使用MFC”,或者将#include <afx.h>改成<atlstr.h>等方法。第二种不推荐,因为如果使用了afx.h中的函数和变量,atlstr.h没有怎么办?
解决方案:项目属性(Alt+F7)——C/C++——代码生成——
如果是Debug的“在静态库中使用MFC”,不要使用MDd,改用MTd,然后编译即可通过。
如果是Debug的“在共享DLL中使用MFC”,注意不要使用MTd,改用MDd;
如果是Release版本“在静态库中使用MFC”,不要使用MD,使用MT;
如果是Release版本的“在共享DLL中使用MFC”,不要使用MT,使用MD。
在本项目中配置如下:
右键项目属性——配置属性——高级——MFC的使用——在共享DLL中使用MFC
项目属性——C/C++——代码生成——使用MD
更多推荐
所有评论(0)