MFC工程的MFC库使用方式与运行时库不一致引起的编译问题

前段时间从网上下来一个有意思的代码,用VS2010打开时需要将工程转换为2010的工程,转化后却出现了编译不通过的问题,类似这样的错误: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库使用方式需要与运行时库一致的问题,感觉很是奇怪,后来搜索了一下才知道有这样的问题。所以在此简要的说明一下这样的问题,以给大家提供一个参考。

VS2010编译器要求MFC库使用方式需要与运行时库需一致,否则会出现错误或者警告。

如果使用MFC动态库,则要使用动态的运行时库;如果使用MFC静态库,则要使用静态的运行时库。同时,如果工程是Debug配置,则要用调试版本的运行时库;如果是Release配置,则要调用非调试版本的运行时库,具体对应关系,如下所示:(D-DLL,d-Debug)

1、在共享 DLL 中使用 MFC(运行时库肯定要用动态的运行时库)

Debug配置 --> Multi-threaded Debug DLL(/MDd)

Release配置 --> Multi-threaded DLL(/MD)

2、在静态库中使用 MFC(运行时库肯定要用静态的运行时库)

Debug配置 --> Multi-threaded Debug(/MTd)

Release配置 --> Multi-threaded(/MT)

相关推荐
木子.李3471 小时前
排序算法总结(C++)
c++·算法·排序算法
freyazzr2 小时前
C++八股 | Day2 | atom/函数指针/指针函数/struct、Class/静态局部变量、局部变量、全局变量/强制类型转换
c++
fpcc3 小时前
跟我学c++中级篇——理解类型推导和C++不同版本的支持
开发语言·c++
终焉代码4 小时前
STL解析——list的使用
开发语言·c++
DevangLic4 小时前
【 *p取出内容 &a得到地址】
c++
鑫鑫向栄4 小时前
[蓝桥杯]修改数组
数据结构·c++·算法·蓝桥杯·动态规划
鑫鑫向栄4 小时前
[蓝桥杯]带分数
数据结构·c++·算法·职场和发展·蓝桥杯
m0_552200825 小时前
《UE5_C++多人TPS完整教程》学习笔记37 ——《P38 变量复制(Variable Replication)》
c++·游戏·ue5
小wanga5 小时前
【递归、搜索与回溯】专题三 穷举vs暴搜vs回溯vs剪枝
c++·算法·机器学习·剪枝
Code_流苏6 小时前
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
开发语言·c++·stl容器·课设·期末大作业·日历程序·面向对象设计