别人移交给我的代码是vc6.0下编译的,但我习惯于在vc7.0以上环境下编译了,现在需要修改其代码。     vc7.0类库中某些类跟vc6.0下有了些许不同,比如CFile.ReadHuge 没有了。  希望在保持代码能在vc6.0下正常编译的情况下,尽可能在vc7.0下做修改,希望用宏加以区别。 

解决方案 »

  1.   

    在windows.h中有这样的定义
    #define WINVER 0x0501
    6.0 是0x0400
      

  2.   

    #if _MSC_VER < 1300 // 1200 == VC++ 6.0
      

  3.   

    mfc庫的版本是由預定義宏 _MFC_VER 來表示的
    60帶的應該為mfc4.2 但是宏定義中用的不是0x0402而是0x0600可以
    #if _MFC_VER == 0x0600
    //6.0
    #else
    //6.0以上版本
    #endif
      

  4.   

    lwg7603說的是區別編譯器版本的宏 lz的本意是希望區別mfc庫版本
      

  5.   

    補充下 應該是
    #if   _MFC_VER   ==   0x0600 
    //6.0 
    #elif _MFC_VER   >   0x0600
    //6.0以上版本 
    #endif
      

  6.   

    #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.
    #endifACE里面是这样判断的,或许可以有点帮助