在VS开发中,使用TRACE、 _tprintf 、_tprintf_s 、wprintf 、wprintf_s 输出中文调试信息时,
经常出现乱码或“_CrtDbgReport: String too long or IO Error“错误提示。
解决办法:
包含头文件locale.h;并在程序开始调用setlocale(LC_ALL, "chs")。
指定当前程序的编码为简体中文,这样便能正常打印出中文字符串了。
如:
#include <locale.h>setlocale(LC_ALL, "chs");
另外:
TRACE0、TRACE1、TRACE2、TRACE3在定义时就已考虑了unicode,所以不需要加_T;
也可以采用OutputDebugString()来代替TRACE,它自动采用UNICODE和非UNICODE。