以前也遇到过,当时解决了没写下来,这次正好又遇到了,就顺手写一下吧,别下次又忘记了。
当VC6的工程转到VC2010或更高版本时编译出现如下错误:
c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxver_.h(81): fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
很多解决方法是把工程属性中的“常规”-“MFC的使用”中的选项要对应“C/C++”-“代码生成”-“运行库”中的选项,比如前面选择了“在静态库中使用MFC”,后面就应该选择“多线程调试/MTd”;前面选择了“在共享DLL中使用MFC”,后面就应该选择“多线程调试DLL/MDd”。当然,你需要对DEBUG和RELEASE版本分别做修改。
如果这时候问题依旧没有解决,那么本文的重点就来了,再次打开工程属性,找到“C/C++”-“预处理器”-“预处理器定义”,把其中“_AFXEXT”的定义删除。
不知道怎么删?后面有个下拉按钮,点开来后选择“编辑”,在弹出的窗口中把它删掉,重新编译,如果还没有解决你的问题,那就给我留言吧,看看能不能帮到你!