printf如何正确输出LPSTR中的双字节字符?
rslt = FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_HMODULE,
ghResDll,
MSG_BAD_PARAM2, // defined in sample.h
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
(LPTSTR) &lpMsgBuf,
0,
NULL);
LPTSTR s =(LPTSTR) lpMsgBuf;
printf("%s\n",s);
在debug环境中,s 中的字符串正确现实,但是,printf的结果只有这个字符串的第一个字母,我想是printf以00作为字符串结束标志的原因。
项目的属性设定中已经指定Unicode.
如何解决这个问题?