to suddy:
我用的是VC++6.0阿,怎么会不支持C++?

解决方案 »

  1.   

    你是不是include 了cpp文件呀??
      

  2.   

    to harry202(harry):
    没有。我包含的是头文件
      

  3.   

    to xxdino(恐龙):
    有那么麻烦吗?我在单独的测试工程里用可是没有问题的阿。
      

  4.   

    to  zhwangquan(横空出世) :
    不是。如果是重复包含的话,编译时会出:.... redefined 之类的错误
      

  5.   

    to  slan(阿培):
    我在前面说过的,有一个单独的测试工程对他进行功能测试,没有任何问题。
      

  6.   

    各位好,这个问题我已经莫名其妙的解决了,方法如下:
    我是在一个.ccp文件中包含这个头文件,这个头文件有VC自己生成的如下一段代码
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    我把他们注释掉就可以了。
    我也不知道是为什么,不知哪位高手能不能解释一下?另外,上边VC自己生成的一段代码到底是干什么的?
      

  7.   

    这段代码是MFC用来检测内存泄漏的。
    其实就是把“new”重新定义了,如果你的程序中new过的内存最后没有释放,框架可以检测出来,并把它TRACE到OUTPUT窗口中。比如,有个程序MyTest.cpp的第168行,是:int* pInt = new int[100];但是直到程序退出,这个pInt都没有释放,那就可以在Output窗口中看到:Detected memory leaks!
    Dumping objects ->
    E:\MYPROJECTS\VC\MyTest\MyTest.cpp(168) : {235} normal block at 0x00376420, 400 bytes long.
     Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 
    Object dump complete.一般来说,在每个CPP头部那些#include之后,最好都加上那段代码。
    但是,不知道为什么你在.h中写了就编不过,我这试了一下,好像可以呀,顶多就是有个重复定义的错。
      

  8.   

    >我是在一个.ccp文件中包含这个头文件,这个头文件有VC自己生成的如下一段>代码
    >#ifdef _DEBUG
    >#define new DEBUG_NEW
    >#undef THIS_FILE
    >static char THIS_FILE[] = __FILE__;
    >#endif
    >我把他们注释掉就可以了。
    >
    因为头文件可能重复使用,所以VC只会在cpp文件里面生成这样的代码。