又是查错 现象是在CE系统中无端退出 不是崩溃。
无法调试 只好用 文件输出。
最终发现是一句 trace 造成了故障。
trace的实现有问题
int trace( LPCSTR fmt, ...)
{
char buf[512];
vsprintf( buf, fmt, va_list );
}
如果这样用:
trace( "%s/n", a_long_asciiz_string );
可以造成 buffer overrun。
在一些CE设备上 若有 buffer overrun,
程序立即退出,什么提示也没有。
我推荐使用 类似 strsafe.h中的函数。
3980

被折叠的 条评论
为什么被折叠?



