error C1189: #error : Please use the /MD switch for _AFXDLL builds---解决方案

Source
原文链接: https://blog.csdn.net/matitie2012/article/details/47293843

网上搜到的一般的方法都是说将”属性页->配置属性->C/C+±>代码生成->运行库” 由 “多线程(/MT)” 改为 “多线程DLL(/MD)”。
其中MT静态编译的选项,而MD是动态编译的选项,如果就是想静态编译呢?

其实,在将”运行库”设置为MT的同时,再将”属性页->配置属性->常规->MFC的使用”改为”在静态库中使用MFC”
即可。

同样的道理,想要动态编译时,对于:
错误 1 error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

需要将”属性页->配置属性->常规->MFC的使用”设置为”在共享DLL中使用MFC”,同时将”属性页->配置属性->C/C+±>代码生成->运行库”设置为”多线程DLL(/MD)”

补充:(/MD)和(/MT)是编译Release版本用的,(/MDd)和(/MTd)是编译Debug版本用的
————————————————
版权声明:本文为CSDN博主「matitie2012」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/matitie2012/article/details/47293843