我有一个程序,我使用TextOut()
在屏幕上打印普通的ASCII字符串。我现在想要添加打印出Shift-JIS编码字符串的功能。我可以告诉TextOut()
我想要打印Shift-JIS字符串还是我必须完全使用其他功能? TextOut的文档似乎没有提到编码。
仅供参考:我的程序目前使用MS visual studio 2015进行编译,“字符集”设置为“使用多字节字符集”。
答案 0 :(得分:1)
感谢andlabs,这里有完整的答案。当程序使用"字符集"编译时,这种方法有效。设置为"使用多字节字符集"。我不想用"字符集编译#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 end