fatal error C1189: #error 如何修改通过编译?

kuhura 2013-02-25 10:30:33
编译环境 VC++.net2005环境,在编译某dll时出现如下错误提示:

错误 1 fatal 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] C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc

\include\afx.h 24

从网上搜索查了一下,修改 项目-属性-配置属性-常规-MFC使用 设置为 “在共享DLL中使用MFC”
或 修改 配置属性-C/C++-代码生成-运行时库 设置为 "多线程DLL(/MD)"
错误均未消除,修改成其他选项会提示错误提示 “Please use the /MD switch for ……”

请问如何才能正确编译?
...全文
72646 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinopecshantb 2015-10-08
  • 打赏
  • 举报
回复
将 运行库改为 静态链接 !!!!! 我一般写VC++ 全部都要改一下!
x6696 2015-09-29
  • 打赏
  • 举报
回复
到了2015年了,依然收益啊- - 谢谢
引用 12 楼 u011729831 的回复:
[quote=引用 10 楼 u012191234 的回复:] [quote=引用 4 楼 superqiong2011 的回复:] 果然如此,赞一个。
你好可不可以说具体点,生成和调用dll的方式该怎样修改?[/quote] 我用的是vs2010,打开你这个项目的属性页,配置属性—> 常规—> 项目默认值—> MFC的使用—> 选择“在静态库中使用MFC”就好了,这是调用lib的时候。如果是调用dll,就要选择“在共享DLL中使用MFC”[/quote]
JonLee9527 2014-12-30
  • 打赏
  • 举报
回复
谢谢,果然我需要在动态DLL中使用MFC。
u011729831 2014-09-25
  • 打赏
  • 举报
回复
引用 10 楼 u012191234 的回复:
[quote=引用 4 楼 superqiong2011 的回复:] 果然如此,赞一个。
你好可不可以说具体点,生成和调用dll的方式该怎样修改?[/quote] 我用的是vs2010,打开你这个项目的属性页,配置属性—> 常规—> 项目默认值—> MFC的使用—> 选择“在静态库中使用MFC”就好了,这是调用lib的时候。如果是调用dll,就要选择“在共享DLL中使用MFC”
memeai 2014-06-18
  • 打赏
  • 举报
回复
引用 10 楼 u012191234 的回复:
[quote=引用 4 楼 superqiong2011 的回复:] 果然如此,赞一个。
你好可不可以说具体点,生成和调用dll的方式该怎样修改?[/quote] 这里说的清楚怎么生成怎么调用 http://blog.csdn.net/lee_eric/article/details/1319439
abvxseq 2014-05-14
  • 打赏
  • 举报
回复
引用 4 楼 superqiong2011 的回复:
果然如此,赞一个。
你好可不可以说具体点,生成和调用dll的方式该怎样修改?
abvxseq 2014-05-14
  • 打赏
  • 举报
回复
你好可不可以说具体点,生成和调用dll的方式该怎样修改?
AlexanderYuan 2014-04-10
  • 打赏
  • 举报
回复
大神能说清楚一些吗
酷侠一剑绝ggh 2014-03-26
  • 打赏
  • 举报
回复
我改成这个Multi-threaded Debug (/MTd)后,没有错误了,
zheng_xw 2013-11-29
  • 打赏
  • 举报
回复
引用 5 楼 lj3358sc 的回复:
[quote=引用 3 楼 akirya 的回复:] [quote=引用 2 楼 kuhura 的回复:] 我试过的。 发帖时写了一句,可能表述的不太清楚。修改运行库会提示 fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
静态链接mfc库的话,那么运行库也得设置成静态链接。 动态链接mfc库,运行库也得设置成动态链接。 就这两个选项,设置成一致即可。[/quote] 非常感谢二楼,终于解决了,原来是生成和调用dll的方式不同,被坑了好多天![/quote] 你好可不可以说具体点,生成和调用dll的方式该怎样修改?
刘羊兔 2013-07-11
  • 打赏
  • 举报
回复
引用 3 楼 akirya 的回复:
[quote=引用 2 楼 kuhura 的回复:] 我试过的。 发帖时写了一句,可能表述的不太清楚。修改运行库会提示 fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
静态链接mfc库的话,那么运行库也得设置成静态链接。 动态链接mfc库,运行库也得设置成动态链接。 就这两个选项,设置成一致即可。[/quote] 非常感谢二楼,终于解决了,原来是生成和调用dll的方式不同,被坑了好多天!
superqiong2011 2013-06-28
  • 打赏
  • 举报
回复
果然如此,赞一个。
  • 打赏
  • 举报
回复
引用 2 楼 kuhura 的回复:
我试过的。 发帖时写了一句,可能表述的不太清楚。修改运行库会提示 fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
静态链接mfc库的话,那么运行库也得设置成静态链接。 动态链接mfc库,运行库也得设置成动态链接。 就这两个选项,设置成一致即可。
kuhura 2013-03-11
  • 打赏
  • 举报
回复
我试过的。 发帖时写了一句,可能表述的不太清楚。修改运行库会提示 fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
  • 打赏
  • 举报
回复
报错都提示了嘛。 /MD[d] 改为 /MT[d] 即 运行库改为 静态链接。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧