0

我有一个程序,我在屏幕上使用TextOut(). 我现在想添加打印 Shift-JIS 编码字符串的功能。我能以某种方式告诉TextOut()我我想打印一个 Shift-JIS 字符串还是我必须完全使用另一个函数?TextOut 的文档似乎没有提到编码。

仅供参考:我的程序目前是用 MS Visual Studio 2015 编译的,并且“字符集”设置为“使用多字节字符集”。

4

1 回答 1

1

感谢 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
于 2016-04-25T09:57:34.287 回答