GCC编译Win32 .rc文件时Unicode字符显示异常求助
GCC环境下Win32资源文件Unicode字符显示问题
我遇到了Win32资源文件中Unicode字符无法正确显示的问题——比如在资源文件中编写LTEXT L"żółć", -1, 5, 5, 80, 10,实际运行后字符显示乱码(效果为Unicode字符显示错误)。但针对该问题的常规解决方案不适用于GCC,原因有两点:
- GCC无法正确读取UTF-16编码的文件
- GCC中不存在
#pragma codepage指令
编辑——最小可复现示例:
main.cpp
#include <windows.h> INT_PTR CALLBACK DialogProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { if(msg == WM_COMMAND && LOWORD(wparam) == IDCANCEL) { EndDialog(hwnd, 0); return TRUE; } else { return FALSE; } } int WINAPI WinMain(HINSTANCE thisInstance, HINSTANCE, LPSTR, int) { DialogBox(thisInstance, MAKEINTRESOURCE(123), nullptr, DialogProc); return 0; }
dialog.rc
#include <windows.h> 123 DIALOG 100, 100, 100, 100 STYLE WS_POPUPWINDOW | WS_CAPTION { LTEXT L"żółć", -1, 0, 0, 100, 100 }
内容的提问来源于stack exchange,提问作者michuu
相关产品推荐
相关产品推荐

