TRACE 在 Unicode下会出现String too long or IO Error打印不出字符串.

因为里面有中文。

 

处理方式:

 

将区域设置成中文
代码如下
char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) );
setlocale( LC_CTYPE, "chs" );
TRACE(_T("第一个第二个"));
setlocale( LC_CTYPE, old_locale);
free(old_locale);

 

setlocale

setlocale

#pragma setlocale( "locale-string" )

Defines the locale (country and language) to be used when translating wide-character constants and string literals. Since the algorithm for converting multibyte characters to wide characters may vary by locale or the compilation may take place in a different locale from where an executable file will be run, this pragma provides a way to specify the target locale at compile time. This guarantees that the wide-character strings will be stored in the correct format. The default locale-string is "C". The "C" locale maps each character in the string to its value as a wchar_t (unsigned short).

posted @ 2010-05-26 14:43  傲衣华少  阅读(739)  评论(0编辑  收藏  举报