怎样用宏区分编译器是vc6还是vc7?该怎么处理

怎样用宏区分编译器是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里面是这样判断的,或许可以有点帮助