簡體   English   中英

為什么直接 x 11 中我的程序沒有 output?

[英]why is there no output to my program in direct x 11?

我是 Direct x 3d 的新手,對此知之甚少。 我最近開始(觀看)一系列教程( https://youtu.be/2NOgrpXks9A ),甚至似乎無法對“hello world”等價物進行排序。 當我從教程中運行程序時,我的程序沒有顯示任何內容,而它應該顯示一個空的 window。 雖然這個問題可能看起來很幼稚,但我不知道還能在哪里提出這樣的問題......

我在網上看到有人在聲明“winmain”arguments,例如:

int CALLBACK WinMain(
   _In_ HINSTANCE hInstance,
   _In_ HINSTANCE hPrevInstance,
   _In_ LPSTR     lpCmdLine,
   _In_ int       nCmdShow
)

...但是,這仍然沒有用。 我在解決方案平台 x86 上運行:-windows 10 -visual studio 2019

#include <Windows.h>

int CALLBACK WinMain(
    HINSTANCE  hInstance, //allows us to load bitmmaps or icons
    HINSTANCE hPrevInstance,//always 0
    LPSTR LPcmdLine,//contains cmd line arguments 
     int        nCmdShow)
{
    const auto pClassName = "hw3dbutts";
    //register window class
    WNDCLASSEX wc = { 0 };
    wc.cbSize = sizeof( wc );
    wc.style = CS_OWNDC;
    wc.lpfnWndProc = DefWindowProc;
    wc.cbClsExtra = 0;
    wc.cbClsExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = nullptr;
    wc.hCursor = nullptr;
    wc.hbrBackground = nullptr;
    wc.lpszMenuName = nullptr;
    wc.lpszClassName = nullptr;
        RegisterClassEx(&wc);
        //create window instance
        HWND hWnd = CreateWindowEx(
            0, pClassName,
            "happy Hard Window",
            WS_CAPTION | WS_MINIMIZE | WS_SYSMENU,
            200, 200, 640, 480,
            nullptr,nullptr,hInstance, nullptr
        );
        //show the damn window!
        ShowWindow(hWnd, SW_SHOW);
        while(true);
    return 0;
}

由於沒有錯誤,似乎沒有出現錯誤消息,但是沒有輸出任何內容,我想知道為什么......

問題是: while(true);

創建並顯示 window 后,您的最小 Win32 程序需要包含一個“消息泵”:

    // Main message loop
    MSG msg = {};
    while (WM_QUIT != msg.message)
    {
        if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }

由於您是 Direct3D 新手,我建議您查看GitHub上的 Direct3D 游戲模板。

你應該看看DirectX Tool Kit和它的教程 Internet 上的許多教程都有些過時了,並且使用的是舊版 DirectX SDK ,盡管它們都可以在正確的上下文中使用。

請參閱Direct3D 11 創建設備剖析和 Direct3D 11入門

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM