如何确定VSmyeclipse 编译器版本本

如何确定VS&编译器版本&及_MSC_VER&值对应版本关系
MSVC++ 11.0 _MSC_VER = 1700 (Visual Studio 2011)&
MSVC++ 10.0 _MSC_VER = 1600 (Visual Studio 2010)
MSVC++ 9.0
_MSC_VER = 1500 (Visual Studio 2008)&
MSVC++ 8.0
_MSC_VER = 1400 (Visual Studio 2005)&
MSVC++ 7.1
_MSC_VER = 1310 (Visual Studio 2003)
MSVC++ 7.0
_MSC_VER = 1300&(Visual&Studio&2002)
MSVC++ 6.0
_MSC_VER = 1200&
MSVC++ 5.0
_MSC_VER = 1100
#if (_MSC_VER == 1300) &//vc7
#import "acax16ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1200) &//vc6
#import "acad.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1400) //vc8
#import "acax17ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1500) //vc9
#import "acax18ENU.tlb" no_implementation raw_interfaces_only named_guids
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。10:15 提问
怎样设置VS的编译选项,生成Debug版的静态库(lib)?
各位前辈,我在开发中遇到了这样一个问题:
我手头有一个静态库,有代码,并且分别在debug和release模式下成功编译出了不同版本的lib库文件。我在其它的项目中需要链接这个库,并且Debug版本的程序链接debug版本的静态库,release版本的程序链接release版本的静态库。现在的情况是,release版本的程序生成成功,debug版本的程序提示链接错误:
Logger_D.lib(StaticLogger.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(dllmain.obj 中)
查看网上的信息,都说是链接的库的debug版本或release版本不匹配,可是我明明是编译并链接了对应版本的静态库啊~
于是一不做二不休,在release版本的程序中链接了debug版的静态库试试——竟然也能成功!这说明我根本就没有成功生成debug版本的静态库!可是将编译选项翻了一遍又一遍,就是找不出原因~
恳请各位前辈指教,到底应该怎样设置编译选项,生成Debug版本的静态库啊?
按赞数排序
各位前辈,问题解决了~
我用二进制查看器找到lib文件里的_ITERATOR_DEBUG_LEVEL字段,将值手动改为2(0x30改为0x32,一共5处),顺利通过链接。但是原因还是不清楚。
只好手动修改二进制文件了~
在你的dll项目中打开项目-属性,检查下编译设置。
编译配置有没有debug release两个项。每个项的设置对不对。
将活动配置修改为debug,有没有输出,输出的是不是debug版的
_ITERATOR_DEBUG_LEVEL 这个宏到底是哪个编译选项控制的啊?或者在二进制文件里什么地方?都有种直接修改二进制库文件的冲动了。
除了改lib外,楼主找到新的解决办法吗
其他相似问题

我要回帖

更多关于 vs2013 编译器版本 的文章

 

随机推荐