使用带重音的单词会出错

时间:2015-01-05 16:52:40

标签: c++ winapi character-encoding

我正在使用WinAPI在C ++中创建一个简单的程序,请参阅下面的代码:

CreateWindowW(L"STATIC", L"Portão", WS_CHILD | WS_VISIBLE, 10, 10, 100, 20, hwnd, (HMENU)ID_LABEL1, NULL, NULL);

上面的代码是在主窗体上创建一个静态控件,问题是第二个参数使用带有重音的巴西葡萄牙语单词(Portão表示Gate),并且它给出了一个错误,错误是:

C:\CBProjects\ListF\main.cpp|46|error: converting to execution character set: Invalid argument|

我正在使用宽字符(wchar_t *),但是如果我将“Portão”替换为“Portao”(没有重音符号),它可以正常工作,为什么?我该如何解决这个问题?

我正在使用Code :: Blocks IDE和MinGW Compilator。

1 个答案:

答案 0 :(得分:0)

C ++包含源字符集和执行字符集的概念。基本上,源字符集是关于文件中带有代码的字符,执行字符集是关于编译器中的内部字符串表示。 有关此主题的更多详细信息,请查看this堆栈溢出问题。