我有一个程序,其中我一直在打印正常的ASCII字符串在屏幕上使用TextOut()。我现在想增加打印Shift-JIS编码字符串的能力。我可以以某种方式告诉TextOut(),我想打印一个Shift-JIS字符串,还是必须完全使用另一个函数?TextOut的文档似乎没有提到编码。
FYI:我的程序目前用2015编译,“字符集”设置为“使用多字节字符集”。
发布于 2016-04-25 09:57:34
感谢实验室,这是完整的答案。当程序用“字符集”编译成“使用多字节字符集”时,这是可行的。我不想用“字符集”设置为unicode来编译,因为这会破坏太多的现有代码。
char shift_jis_string[MAX_STR_LEN]; // null terminated
// blah blah, setting shift_jis_string
WCHAR unicode_string[MAX_STR_LEN];
int n = MultiByteToWideChar(932,0,shift_jis_string,-1,unicode_string,MAX_STR_LEN);
TextOutW(hdc,X,Y, unicode_string, n); // note the W on the endhttps://stackoverflow.com/questions/36797510
复制相似问题