0

それでウィンドウをまとめようとしましたが、ウィンドウに名前を付ける必要があるときに教えてくれました。(エラー: 型 "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;

すべてのヘルプは大歓迎です! 前もって感謝します。

4

2 に答える 2

0

幅の広い弦が必要です。文字列の前に L を付けます。

hwnd = CreateWindow(
    L"Engine_Winter_Name",
    L"Winter Engine",
于 2014-11-02T20:51:49.387 に答える
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 を使用するのが最善です。

于 2014-11-02T20:53:50.553 に答える