VS2010 MFC工程的MFC库使用方式与运行时库不一致引起的编译问题
2016-08-05 09:31
435 查看
前段时间从网上下来一个有意思的代码,用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)
转自:http://blog.csdn.net/chenlycly/article/details/18420667
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)
转自:http://blog.csdn.net/chenlycly/article/details/18420667
相关文章推荐
- VS2010 MFC工程的MFC库使用方式与运行时库不一致引起的编译问题
- VS2010 MFC工程的MFC库使用方式与运行时库不一致引起的编译问题
- VS2010修改C++项目为“静态库中使用MFC”编译问题
- 在VS2010进行MFC编程设置字符集的问题(使用多字节字符集引起错误)
- 关于MFC下使用MTL库编译错误的问题
- vs2005编译的release MFC程序无法在未安装2005的机器上使用的问题解决
- 关于MFC下使用MTL库编译错误的问题
- VC6工程迁移到VC2008 SP1中,使用MFC 9.0静态链接后运行错误的解决办法
- 非MFC工程使用MFC库时的问题及解决办法
- vs2010建立win32 application 编译错误(用vc6.0建立此工程正常运行)解决方法
- hibernate entity使用sequence方式时,id增量50且与sequence值不一致的问题
- 非MFC工程使用MFC库时的问题及解决办法
- 非MFC工程使用MFC库时的问题及解决办法
- ArcEngine开发——在64位操作系统下使用VS2010中开发ArcEngine应用程序的编译问题
- Hudson中使用ant编译工程乱码问题的解决
- 使用vs2010创建MFC工程后,vs2010的bug,不知道你们有没有
- vc.net中MFC静态与动态链接问题与release方式编译
- MFC 使用MsFlexGrid 控件发布后无法在其它机器运行问题解决方案
- 非MFC工程使用MFC库时的问题及解决办法
- MFC工程中使用sqlite3源代码--c和c++代码混合编译出错解决