在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。

Error C1189: #error: Please use the /MD switch for _AFXDLL builds的更多相关文章

  1. Error C1189: #error: Please use the /MD switch for _AFXDLL builds(转)

    原文转自 https://www.cnblogs.com/zwh0214/p/6048360.html 在VS 2013中编译程序时出现错误: 错误提示1: error C1189: #error : ...

  2. VS错误:#error 指令: Please use the /MD switch for _AFXDLL builds

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

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

    出现如下错误: fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires ...

  4. 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 ...

  5. vc/atlmfc/include/afx.h(24) : fatal error C1189: #error : Building MFC application with /MD[d] (CRT

    环境:win7,64位,vs2012 1> c:/program files/microsoft visual studio 8/vc/atlmfc/include/afx.h(24) : fa ...

  6. 从“空项目”创建MFC项目遇到的问题error C1189,error MSB8031

    在VS2013中创建了一个空项目,创建了MyApp.h, MyApp.cpp(MyApp.h使用了<afxwin.h>) build的时候报错: fatal error C1189: #e ...

  7. fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>

    给对话框添加类, 报错 CalibrateMFCDlg.h(6) : error C2504: “CDialog”: 未定义基类 等多个错误 加上 #include "afxwin.h&qu ...

  8. VS2003转VS2010 fatal error C1189: #error

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

  9. 【转】fatal error C1189: #error : missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

    转自:http://blog.csdn.net/friendan/article/details/46576699 fatal error C1189: #error :  missing -D__S ...

随机推荐

  1. visio UML用例里面找不到include关系

    今天用Microsoft Visio 2007画用例图时,发现visio UML用例里面找不到include关系,查到一个可行的解决办法:  1)创建一个UML用例图模板:打开Microsoft Vi ...

  2. PHP, Python Nginx works together!

    Nginx is so good at delivering requests to many others. Good! Now let's use the nginx upstream modul ...

  3. 2440开发板linux系统移植3G拨号上网收发短信(三)

    一.用text查看模式 下面的“发”是指我敲的命令,“收”是指回车后显示的信息包括其他接收的信息. ~ >: microcom -s 115200 /dev/ttyUSB1 发:at 收:OK ...

  4. hdu1198--并查集

    Problem Description Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is ...

  5. c++课程设计之通讯录电话簿管理设计

    功能 本程序是利用c++实现一个简单的电话簿管理.我是在Linux下利用g++直接编译的,完全可以将文件在VC中编译执行.源程序如有需要自行下载,点此下载,下载程序编译执行 程序执行效果如下; 1.新 ...

  6. 远程安装实施时,如何配置远程服务器的本地 yum 安装源

    配置本地 yum 安装源 overview 1.使用 ftp 将OracleLinux-R5-U8-Server-x86_64-dvd.iso 上传到 /home 目录下.再使用 mount 命令挂载 ...

  7. 常见缓存算法和LRU的c++实现

    对于web开发而言,缓存必不可少,也是提高性能最常用的方式.无论是浏览器缓存(如果是chrome浏览器,可以通过chrome:://cache查看),还是服务端的缓存(通过memcached或者red ...

  8. 消息队列NetMQ 原理分析1-Context和ZObject

    前言 介绍 NetMQ是ZeroMQ的C#移植版本,它是对标准socket接口的扩展.它提供了一种异步消息队列,多消息模式,消息过滤(订阅),对多种传输协议的无缝访问. 当前有2个版本正在维护,版本3 ...

  9. 一个简单的使用restc demo

    最近不经意间看到饿了么团队开发的restc,接口调试工具(类似postman),其实调试接口都没用过工具,每次都只是运行起项目直接调接口.闲来无事,看到restc,就决定试试,后面觉得挺不错的,就分享 ...

  10. Putty的注册表设置

    Putty是一款非常好用的远程管理Linux系统的工具,其主要具有以下几个优点:  完全免费;  在Windows 9x/NT/2000下运行的都非常好;  全面支持SSH1和SSH2:  绿色软件, ...