0306 vprintf trace Debug Assertion Failed afxdump
0306 vprintf trace Debug Assertion Failed info
http://www.yippeesoft.com/blog/p/0306vprintftraceAsserFailedinfo.php
0306 vprintf trace Debug Assertion dumpout arg
http://www.yippeesoft.com/blog/p/0306vprintftraceAssertdumpoutarg.php
回家后继续试验,发现是长度问题
TRACE("123111111111111111111111111111111111111133333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333ffffffffffffffffffffffffffffffffffffffffffffffffsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssgggggggggggggggggggggggggggggggggggggggggggggggggggggggggsssssssssssssssssssssssssssssssssssssssssssssssssssssss");
不过非常奇怪的是,即使我弄大数组,仍然不行,实在奇怪,找了找网上的资料,感觉和我的情况差不多,不过是日文,不大明白
出力可能なのは半角512文字まで!
TRACEの定義で注目したいのが
TCHAR szBuffer[512];
の1文。512バイトしかバッファーを確保していないのでこれ以上の出力を行うことができない。実際に512バイト以上を表示しようとすると...
// was there an error? was the expanded string too long?
ASSERT(nBuf >= 0);
この部分でアサーション・エラーが生じる。
制限をなくすには
#ifdef _DEBUG
afxDump << szBuffer;
#endif
を使えばいい。書式付にしたいなら以下のようにするだけ。
#ifdef _DEBUG
CString strTrace;
strTrace.Format("%d",10);
afxDump << strTrace;
#endif
别的不明白,代码倒是明白,改为
afxDump<<("123111111111111111111111111111111111111133333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333ffffffffffffffffffffffffffffffffffffffffffffffffsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssgggggggggggggggggggggggggggggggggggggggggggggggggggggggggsssssssssssssssssssssssssssssssssssssssssssssssssssssss");
运行正常,看看
TRACE 使用TRACE宏显示或者打印调试信息。TRACE是通过函数AfxTrace实现的。由于AfxTrace函数使用了cdecl调用约定,故可以接受个数不定的参数,如同printf函数一样。它的定义和实现如下:
我本来也想用 直接 TRACE format,ap 估计当时也是报这种错误
extern AFX_DATA CDumpContext afxDump
原创文章,转载请注明: 转载自YippeeSoft开心软件
历史博文
- 4G大容量U盘做DOS启动盘 - 2010
- ingston U盘制作 winPE+slax linux+DOS工具箱 的启动盘 - 2010
- 20081105 c# wpf canvas event - 2009
- 20071015 sqlite cpp - 2008
- 20070202 sourceinsight TabSiPlu - 2007
- 时间、儿子、WYAJ - 2005
- TortoiseCVS中文帮助-监视、编辑、撤销 - 2005
- Java str2bcd 压缩BCD编码 - 2005
评论