error C2061: 语法错误 : 标识符“_Wherenode” 的错误

   今天用vc7.1建了个支付MFC的控制台测试工程,用TUT单元测试框架.在包含:
  1. #include <tut/tut.hpp>
  2. #include <tut/tut_reporter.hpp>

时,出现 error C2061: 语法错误 : 标识符“_Wherenode” 的错误.
这肯定是MFC捣的鬼.因为我用纯console工程时,没有这个出错的.
   上网google了下,在一国外网站找到了答案:是DEBUG_NEW宏搞的鬼.只要xtree.h包含在定义这个宏之前,就会出现这个错误.不知MS在搞什么...
    把包含xtree.h的文件(比如<map>,比如本帖里提到的tut.hpp或ut_reporter.hpp)放在
  1. #ifdef _DEBUG
  2. #define new DEBUG_NEW
  3. #endif

之前就好了.

-----------------------------
有这个错误的样板:
  1. #ifdef _DEBUG
  2. #define new DEBUG_NEW
  3. #endif
  4. #include <tut/tut.hpp>
  5. #include <tut/tut_reporter.hpp>

改为如下顺序就没这个错误了:
  1. #include <tut/tut.hpp>
  2. #include <tut/tut_reporter.hpp>
  3. #ifdef _DEBUG
  4. #define new DEBUG_NEW
  5. #endif
  

你可能感兴趣的:(c,框架,Google,测试,单元测试,mfc)