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)

相关推荐
不会就选b4 小时前
C++补充部分(一)--lambda 表达式
开发语言·c++
丰色木夕12 小时前
Ubuntu22.04下源码编译安装USD-Brep
c++·ubuntu·nvidia·usd-brep
衍玊15 小时前
多路转接原理与应用
c++
himobrinehacken16 小时前
位运算揭秘:左右移与符号位陷阱
c语言·c++·算法·安全
Android小码家19 小时前
Vehicle 实战 自定义属性+测试demo
java·c++·framework·vhal·vehicle
hetao173383719 小时前
2026-10-19 hetao1733837 的刷题记录
c++·算法
夏虫不可与之言冰19 小时前
第三课 点亮 LED 与定时器非阻塞闪烁
c语言·c++·vscode·单片机·嵌入式硬件·物联网
辛苦才能19 小时前
C++ 哈希表深度解析:删除为什么必须打标记,负载因子为什么卡 0.7
开发语言·数据结构·c++·算法
miller-tsunami19 小时前
STL简介&string相关知识点
开发语言·c++·string
坤坤子吖20 小时前
Linux 线程同步与互斥——互斥锁
linux·服务器·c++·笔记·学习