怎样用宏区分编译器是vc6还是vc7?
别人移交给我的代码是vc6.0下编译的,但我习惯于在vc7.0以上环境下编译了,现在需要修改其代码。
vc7.0类库中某些类跟vc6.0下有了些许不同,比如CFile.ReadHuge 没有了。
希望在保持代码能在vc6.0下正常编译的情况下,尽可能在vc7.0下做修改,希望用宏加以区别。
[解决办法]
#if _MSC_VER < 1300 // 1200 == VC++ 6.0
[解决办法]
mfc的版本是由定宏 _MFC_VER 表示的
60的mfc4.2 但是宏定中用的不是0x0402而是0x0600
可以
#if _MFC_VER == 0x0600
//6.0
#else
//6.0以上版本
#endif
[解决办法]
充下 是
#if _MFC_VER == 0x0600
//6.0
#elif _MFC_VER > 0x0600
//6.0以上版本
#endif
[解决办法]
#if (_MSC_VER >= 1500)
# include "ace/config-win32-msvc-9.h"
#elif (_MSC_VER >= 1400)
# include "ace/config-win32-msvc-8.h"
#elif (_MSC_VER >= 1310)
# include "ace/config-win32-msvc-7.h"
#else
# error This version of Microsoft Visual C++ is not supported.
#endif
ACE里面是这样判断的,或许可以有点帮助