c - TextOut() 和 Shift-JIS(日语字符)

标签 c windows winapi visual-studio-2015 shift-jis

我有一个程序,其中我使用 TextOut() 在屏幕上打印普通的 ASCII 字符串。我现在想添加打印 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

关于c - TextOut() 和 Shift-JIS(日语字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797510/

相关文章:

c - 是否有 MSYS 脚本文件之类的东西?

c - 使用argv读取文件

c# - 如何使用 WPF 使 Windows 静音?

c++ - 消息队列解决方案?

c - 使用 Str(n)cat 的 Pebble 堆损坏

c - 为什么 FILE * 不存储打开文件的地址

windows - Bash 编程 (Cygwin) : Illegal Character ^M

c++ - 将 Qt Creator 与 Allegro 结合使用

c++ - 如何在 C++ 中创建文件映射?

c++ - 在哪里可以找到 NVIDIA 3D Vision 的 API 文档?