所以我试图把一个窗口放在一起,但是当我需要命名窗口时,我告诉了我。 (错误:类型“const char *”的参数与“LPCWSTR”类型不兼容) 下面是CreateWindow方法的编程。错误应该在第2行。
hwnd = CreateWindow(
"Engine_Winter_Name",
"Winter Engine",
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION,
GetSystemMetrics(SM_CXSCREEN)/2 - WIDTH/2,
GetSystemMetrics(SM_CYSCREEN)/2 - HEIGHT/2,
WIDTH,
HEIGHT,
(HWND)NULL,
(HMENU)NULL,
hInstance,
(LPVOID*)NULL);
if (!hwnd)
return false;
ShowWindow(hwnd, nCmdShow);
return true;
非常欢迎所有帮助! 提前谢谢。
答案 0 :(得分:0)
你需要一个宽字符串。用L.前缀你的字符串
hwnd = CreateWindow(
L"Engine_Winter_Name",
L"Winter Engine",
答案 1 :(得分:0)
您正在使用已定义的UNICODE
进行编译,这意味着,例如CreateWindow
宏映射到CreateWindowW
,它需要基于宽字符(wchar_t
的)参数:
hwnd = CreateWindow(
L"Engine_Winter_Name",
L"Winter Engine",
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION,
GetSystemMetrics(SM_CXSCREEN)/2 - WIDTH/2,
GetSystemMetrics(SM_CYSCREEN)/2 - HEIGHT/2,
WIDTH,
HEIGHT,
HWND(),
HMENU(),
hInstance,
nullptr);
if (!hwnd)
return false;
ShowWindow(hwnd, nCmdShow);
对于现代Windows桌面编程,通常最好使用基于Unicode的API,正如您所做的那样。