TRACE2("blue=%d,red=%d,green=%d\n",PixelSets.GetAt(1).rgbBlue,PixelSets.GetAt(1).rgbRed,PixelSets.GetAt(1).rgbGreen);其中PixelSets为CArray
 可没有任何显示!   请问除了TRACE()还有其他跟踪方法吗?

解决方案 »

  1.   

    在debug状态
    ctrl+F10运行到光标处
      

  2.   

    请注意:你不能用TRACE2, 应用TRACE.
      

  3.   

    调试的最常用的三种方法,假如我们怀疑一个整形变量x有问题的话,可以:1,  CString str;str.Format(“%d”,x);//和printf非常相似MessageBox(str);优点:点确定后程序才会继续运行。缺点:如果次数太多,过于浪费时间和键盘。2,Ctrl+F10运行到光标处,在Watch窗口中name项输入x,,后面会显示值。   优点:简单,可以查看所有的值。   缺点:无法看到第二次运行到此处的情况。3,  #ifdef _DEBUG       afxDump<<x;#endif将结果显示在OutPut,不能在Release状态下。Ctrl+F5似乎无效,F5可以。afxDump.SetDepth(1);
    设置深度,如maps,arrays,它只打出有几个可元素,我们用上面的这个函数,它会将所有的内容打出来.
    #ifdef _DEBUG
     char test[] = "0123456789\n";
     afxDump.HexDump( "--", (BYTE*) test, 11, 6 );
    #endif
    结果为:
    -- 30 31 32 33 34 35
    -- 36 37 38 39 0A
    第一个参数,行首的打头字符.
    第二个参数,要打的内容.
    第三个参数,要打的元素个数.
    第四个参数,每行的个数. 4,TRACE(...), TRACE0, TRACE1, TRACE2, TRACE3 也只能在调试时用注意打字符串时有长度限制,包括结束符在内,不超过512个字符.
      

  4.   

    调试的最常用的三种方法,假如我们怀疑一个整形变量x有问题的话,可以:1,  CString str;str.Format(“%d”,x);//和printf非常相似MessageBox(str);优点:点确定后程序才会继续运行。缺点:如果次数太多,过于浪费时间和键盘。2,Ctrl+F10运行到光标处,在Watch窗口中name项输入x,,后面会显示值。   优点:简单,可以查看所有的值。   缺点:无法看到第二次运行到此处的情况。3,  #ifdef _DEBUG       afxDump<<x;#endif将结果显示在OutPut,不能在Release状态下。Ctrl+F5似乎无效,F5可以。afxDump.SetDepth(1);
    设置深度,如maps,arrays,它只打出有几个可元素,我们用上面的这个函数,它会将所有的内容打出来.
    #ifdef _DEBUG
     char test[] = "0123456789\n";
     afxDump.HexDump( "--", (BYTE*) test, 11, 6 );
    #endif
    结果为:
    -- 30 31 32 33 34 35
    -- 36 37 38 39 0A
    第一个参数,行首的打头字符.
    第二个参数,要打的内容.
    第三个参数,要打的元素个数.
    第四个参数,每行的个数. 4,TRACE(...), TRACE0, TRACE1, TRACE2, TRACE3 也只能在调试时用注意打字符串时有长度限制,包括结束符在内,不超过512个字符.