c++ DLL特殊字符

C++ DLL special characters

本文关键字:特殊字符 DLL c++      更新时间:2023-10-16

我正在将用户生成的字符串从我的程序发送到我正在制作的c++ DLL函数中。它工作得很好,直到我发送一个字符串,如"åäö"。我的函数看起来像这样:

export void showMessage(char* str) {
    MessageBox(NULL, str, "DLL says", MB_OK);
}

当程序发送"åäö"时,会弹出一个带有"åäö"的消息。如何将其转换为"åäö"?需要什么库?我使用Code::Blocks for DLL

您正在使用的字符似乎在扩展ASCII表中(值大于127),并且将取决于您正在使用的代码页,这是一种不太可移植的方法,因为运行您的代码的系统需要在程序本身之外进行环境更改。

不使用MessageBox,而使用启用Unicode的版本MessageBoxW,并查找指定字符的Unicode编码。

引用


  1. Unicode版本和ANSI版本的函数,访问2014-06-06,<http://zone.ni.com/reference/en-XX/help/371361J-01/lvexcodeconcepts/unicode_ansi_version_functs/>
  2. ASCII表查找, 2014-06-06, <http://www.theasciicode.com.ar/extended-ascii-code/capital-letter-a-ring-uppercase-ascii-code-143.html>
  3. Unicode查找, 2014-06-06, <http://unicodelookup.com/>