原文转自 https://www.cnblogs.com/zwh0214/p/6048360.html

在VS 2013中编译程序时出现错误:

错误提示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,或使用标准Windows库,此时该处可能无论是什么都会报错

运行库中多线程调试是:MDd(多线程调试DLL)

解决方法

将MDd改成MTd,如果改正后报错误2,按下面方法更改。

错误提示2:

error C1189: #error: Please use the /MD switch for _AFXDLL builds 

原因

常规里面是:在共享DLL中使用MFC,

运行库中多线程调试是:MTd(多线程调试)

解决方法

将常规改成:在静态库中使用MFC,或使用标准Windows库

常规和运行库  如下图:

常规:  右击项目->属性->配置属性->常规,然后在右边的“项目默认值”中的“MFC的使用”选项中选择“在静态库中使用MFC”,

多线程调试:  右击项目-->属性->配置属性->c/c++->代码生成->运行时库->多线程调试(/MTd)

相关注释:

MFC的使用,有三种设置:

 1.使用标准Windows库

 2.在静态库中使用MFC:是将DLL中的相关代码写进EXE文件中,文件较大,但是可以在没有相关DLL的机器上运行;

 3.在共享DLL中使用MFC:指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件;

多线程调试

/MD:在dll中使用多线程,创建动态链接库的release版本,需要选择。

/MT: 在exe里使用多线程,创建exe的release版本,需要选择。

/MTd:同/MT一样,不过是在Debug版本中使用。

/MDL:同/MD一样,不过是在Debug版本中使用。

如果是Debug的“在静态库中使用MFC”,不要使用MDd,改用MTd,然后编译即可通过。

如果是Debug的“在共享DLL中使用MFC”,注意不要使用MTd,改用MDd;

如果是Release版本“在静态库中使用MFC”,不要使用MD,使用MT;

如果是Release版本的“在共享DLL中使用MFC”,不要使用MT,使用MD。

转载于:https://www.cnblogs.com/happykoukou/p/7987106.html

Error C1189: #error: Please use the /MD switch for _AFXDLL builds(转)相关推荐

  1. Visual Studio—— IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds

    在做MFC时遇到这个问题,解决方法如下: 修改设置:工程(Project)-> 属性(Properties)-> 配置属性(Configuration Properties)-> c ...

  2. fatal error C1189: #error : Building MFC application with /MD[d]

    fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shar ...

  3. fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC sha

    调试程序时出现以下问题:d:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal e ...

  4. fatal error C1189: #error : Building MFC application with /MD[d]

    今天用VS2010编译一个vc6.0写的程序,没想到出了挺多问题,特地记录一下! 本身程序是在共享Dll中使用MFC,但为了在其他电脑也能运行,我改成了在静态库中使用MFC,于是出现下面错误: c:\ ...

  5. afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requi

    问题: 在c++/cli控制台项目中,因为要使用cstdiofile类,所有包含了afx.h,但是报如下错误: "afx.h(24): fatal error C1189: #error : ...

  6. error C1189: #error : WINDOWS.H already included. MFC apps must not #include windows.h

    http://ghyan1208.blog.163.com/blog/static/162866676201072511746382/ 错误原因主要是因为#include <afx.h>这 ...

  7. fatal error C1189: #error:MFC does not support WINVER less than 0x0501. Please change the definitio

    VS2017报错: fatal error C1189: #error: MFC does not support WINVER less than 0x0501. Please change the ...

  8. VS2003转VS2010 fatal error C1189: #error

    我自己的mfc的demo要转换编译环境出现以下编译错误: VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT ...

  9. VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x

    编译VTK,MFC时,mfc对版本的要求问题: 解决方法原文链接:http://www.cnblogs.com/madhenry/archive/2011/06/29/2093678.html 最近拿 ...

最新文章

  1. 如何使用R来连接各个数据库
  2. RIPv1与RIPv2互通
  3. NewSQL——优化的SQL存储引擎(TokuDB, MemSQL)+?
  4. 部署vs 2008 Report View
  5. hankel--生成Hankel矩阵
  6. 前facebook产品技术leader徐玮:如何建立用户增长机制
  7. 密码学专题 密钥生成|分组加密的模式 ECB|CBC|CFB|OFB
  8. abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之六(三十二)
  9. php mysql 持久化_PHP: mysqli 扩展和持久化连接 - Manual
  10. centos绑定多个ip CentOS一个网卡设置多个IP
  11. JavaScript等于 == 与 恒等于 === 的区别
  12. 卓越产品计划丨神策分析性能优化详解:数据重组织查询优化
  13. 【随机过程】10 -高斯过程与布朗运动
  14. PS 批处理切图去空白
  15. c语言内存不能为written,该内存不能为written的解决方法 has written 和wrote的区别
  16. 复合型网络拓扑结构图_网络拓扑结构图知识
  17. MAC版photoshop CS6安装与破解
  18. kali linux国内源
  19. Flink重启策略Restart-Strategy
  20. APS生产计划排产与ERP生产计划差异对比

热门文章

  1. 读书笔记 - js高级程序设计 - 第四章 变量 作用域 和 内存问题
  2. python excel转xml
  3. 结构体在固件库中的应用
  4. requestAnimationFrame()
  5. 微软发布Sample Browser for Windows 8版:5000示例代码,触手可及
  6. HTML5开发 Web SQL Database 本地数据库
  7. kubernetes之三:service
  8. 【零基础学Java】—字符串的概述和特点(十五)
  9. 力扣 两个数组的交集
  10. 信用卡逾期了还能网上贷款吗?