我有一个程序,我在屏幕上使用TextOut()
. 我现在想添加打印 Shift-JIS 编码字符串的功能。我能以某种方式告诉TextOut()
我我想打印一个 Shift-JIS 字符串还是我必须完全使用另一个函数?TextOut 的文档似乎没有提到编码。
仅供参考:我的程序目前是用 MS Visual Studio 2015 编译的,并且“字符集”设置为“使用多字节字符集”。
我有一个程序,我在屏幕上使用TextOut()
. 我现在想添加打印 Shift-JIS 编码字符串的功能。我能以某种方式告诉TextOut()
我我想打印一个 Shift-JIS 字符串还是我必须完全使用另一个函数?TextOut 的文档似乎没有提到编码。
仅供参考:我的程序目前是用 MS Visual Studio 2015 编译的,并且“字符集”设置为“使用多字节字符集”。
感谢 andlabs,这是完整的答案。这在程序编译时将“字符集”设置为“使用多字节字符集”时有效。我不想将“字符集”设置为 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