我的C++窗口出错

I am getting an error with my C++ Window

本文关键字:出错 窗口 C++ 我的      更新时间:2023-10-16

对,最近我一直在学习 C++,因为我想做一个游戏。所以我所做的,我从制作一个 c++ 窗口开始,但在制作结束时,我想出了一个我无法解决的问题。在它说wc.lpszClassName = L"ZakariyaTV's Class"的行上;我在等于下面得到一条红线。我花了很多时间试图弄清楚,但我做不到。如果你知道如何修复它,那将不胜感激。谢谢。

这是我的代码:

#include<Windows.h>
HWND windowHandle;
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_CLOSE:
        DestroyWindow(hwnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd, msg, wParam, lParam);
    }
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE preInstance, PSTR cmdLine, int showCmd)
{
    // Step 1
    WNDCLASSEX wc;
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hIconSm = 0;
    wc.hInstance = hInstance;
    wc.lpfnWndProc = WndProc;
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpszClassName = L"ZakariyaTV's Class";
    wc.lpszMenuName = 0;
    wc.hCursor = LoadCursor(0, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
    // Step 2 
    RegisterClassEx(&wc);
    // Step 3
    windowHandle = CreateWindowEx(WS_EX_ACCEPTFILES, L"ZakariyaTV's Class", L"Game!",
        WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 800, 600, 0, 0, hInstance, 0);
    // Step 4 
    if (windowHandle == 0)
        MessageBoxA(0, "Create window failed", "Error Message", 0);
    // Step 5 
    ShowWindow(windowHandle, showCmd);
    // Step 6
    UpdateWindow(windowHandle);
    MSG msg;
    SecureZeroMemory(&msg, sizeof(MSG));
    int returnValue = 0;
    while ((returnValue = GetMessage(&msg, 0, 0, 0)) != 0)
    {
        if (returnValue == -1)
        {
            MessageBoxA(windowHandle, "GetMessage Failed!", "Error Message", 0);
            break;
        }
        TranslateMessage(&msg);
        DispatchMessage(&msg);

    }
    return (int)msg.wParam;
}
Visual Studio 2015在

创建新项目时默认使用多字节字符集,但L"ZakariyaTV的类"中的L告诉编译器字符串应该编译为Unicode,所以你应该改变项目的字符集:在VS 2015中右键单击项目,然后在项目默认值下选择属性->常规->字符集, 最后将您之前的"使用多字节字符集"更改为"使用 Unicode 字符集"。