【发布时间】:2021-06-07 16:35:18
【问题描述】:
我正在尝试创建一个按钮,但总是出错
“无法将参数 '2' 的 'const wchar_t*' 转换为 'LPCSTR {aka const char*}' 到 'HWND__* CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU、HINSTANCE、LPVOID)'"
我试过了:
HWND hwndButton = CreateWindow(
L"BUTTON",
L"OK",
WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON, // Styles
10,
10,
100,
100,
NULL,
NULL,
(HINSTANCE)GetWindowLongPtr(NULL, GWLP_HINSTANCE),
NULL);
谁能帮我解决这个问题???
【问题讨论】:
-
您必须在您的项目设置中启用 unicode 支持,否则您不应该使用 wchar 而是使用 ASCII 字符串。
-
L前缀将创建wchar_t(see here),如果您打算支持 unicode,这可能是可取的,但如果您想要 LPCSTR,只需通过"BUTTON" -
另一种选择是将字符串包装在
_T("BUTTON")宏中。 -
@CoryKramer 成功了,谢谢你的帮助
-
致电
CreateWindowW(注意尾随W)。完成后,请务必阅读What is the HINSTANCE passed to CreateWindow and RegisterClass used for?。更好的选择是获得真正的学习材料,例如 Petzold 的Programming Windows。