当前位置:编程学习 > C#/ASP.NET >>

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

编译环境 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 ……”

请问如何才能正确编译? --------------------编程问答-------------------- 报错都提示了嘛。
/MD[d] 改为 /MT[d]
即 运行库改为 静态链接。 --------------------编程问答-------------------- 我试过的。
发帖时写了一句,可能表述的不太清楚。修改运行库会提示
fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds --------------------编程问答--------------------
引用 2 楼 kuhura 的回复:
我试过的。
发帖时写了一句,可能表述的不太清楚。修改运行库会提示
fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds

静态链接mfc库的话,那么运行库也得设置成静态链接。
动态链接mfc库,运行库也得设置成动态链接。
就这两个选项,设置成一致即可。 --------------------编程问答-------------------- 果然如此,赞一个。 --------------------编程问答--------------------
引用 3 楼 akirya 的回复:
Quote: 引用 2 楼 kuhura 的回复:

我试过的。
发帖时写了一句,可能表述的不太清楚。修改运行库会提示
fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds

静态链接mfc库的话,那么运行库也得设置成静态链接。
动态链接mfc库,运行库也得设置成动态链接。
就这两个选项,设置成一致即可。


非常感谢二楼,终于解决了,原来是生成和调用dll的方式不同,被坑了好多天! --------------------编程问答--------------------
引用 5 楼 lj3358sc 的回复:
Quote: 引用 3 楼 akirya 的回复:

Quote: 引用 2 楼 kuhura 的回复:

我试过的。
发帖时写了一句,可能表述的不太清楚。修改运行库会提示
fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds

静态链接mfc库的话,那么运行库也得设置成静态链接。
动态链接mfc库,运行库也得设置成动态链接。
就这两个选项,设置成一致即可。


非常感谢二楼,终于解决了,原来是生成和调用dll的方式不同,被坑了好多天!

你好可不可以说具体点,生成和调用dll的方式该怎样修改?
补充:.NET技术 ,  VC.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,