could not create window



  • ich hab mir die directxsdk runtergeladen und ein paar code stücke reingkopiert
    und dann kommt die Fehlermeldung, weiss einer woran das liegen könte?



  • Vermutlich daran, dass du beim Zusammenkopieren der Codestücke irgendwo Mist gebaut hast 😉



  • [cpp]// include the basic windows header files and the Direct3D header file
    #include <windows.h>
    #include <windowsx.h>
    #include <d3d9.h>

    // include the Direct3D Library file
    #pragma comment (lib, "d3d9.lib")

    // global declarations
    LPDIRECT3D9 d3d; // the pointer to our Direct3D interface
    LPDIRECT3DDEVICE9 d3ddev; // the pointer to the device class

    // function prototypes
    void initD3D(HWND hWnd); // sets up and initializes Direct3D
    void render_frame(void); // renders a single frame
    void cleanD3D(void); // closes Direct3D and releases memory

    // the WindowProc function prototype
    LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

    // the entry point for any Windows program
    int WINAPI WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
    {
    HWND hWnd;
    WNDCLASSEX wc;

    ZeroMemory(&wc, sizeof(WNDCLASSEX));

    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
    wc.lpszClassName = L"WindowClass";

    RegisterClassEx(&wc);

    hWnd = CreateWindowEx(NULL,
    L"WindowClass",
    L"Our First Direct3D Program",
    WS_OVERLAPPEDWINDOW,
    300, 300,
    800, 600,
    NULL,
    NULL,
    hInstance,
    NULL);

    ShowWindow(hWnd, nCmdShow);

    // set up and initialize Direct3D
    initD3D(hWnd);

    // enter the main loop:

    MSG msg;

    while(TRUE)
    {
    while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }

    if(msg.message == WM_QUIT)
    break;

    render_frame();
    }

    // clean up DirectX and COM
    cleanD3D();

    return msg.wParam;
    }

    // this is the main message handler for the program
    LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch(message)
    {
    case WM_DESTROY:
    {
    PostQuitMessage(0);
    return 0;
    } break;
    }

    return DefWindowProc (hWnd, message, wParam, lParam);
    }

    // this function initializes and prepares Direct3D for use
    void initD3D(HWND hWnd)
    {
    d3d = Direct3DCreate9(D3D_SDK_VERSION); // create the Direct3D interface

    D3DPRESENT_PARAMETERS d3dpp; // create a struct to hold various device information

    ZeroMemory(&d3dpp, sizeof(d3dpp)); // clear out the struct for use
    d3dpp.Windowed = TRUE; // program windowed, not fullscreen
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; // discard old frames
    d3dpp.hDeviceWindow = hWnd; // set the window to be used by Direct3D

    // create a device class using this information and the info from the d3dpp stuct
    d3d->CreateDevice(D3DADAPTER_DEFAULT,
    D3DDEVTYPE_HAL,
    hWnd,
    D3DCREATE_SOFTWARE_VERTEXPROCESSING,
    &d3dpp,
    &d3ddev);
    }

    // this is the function used to render a single frame
    void render_frame(void)
    {
    // clear the window to a deep blue
    d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 40, 100), 1.0f, 0);

    d3ddev->BeginScene(); // begins the 3D scene

    // do 3D rendering on the back buffer here

    d3ddev->EndScene(); // ends the 3D scene

    d3ddev->Present(NULL, NULL, NULL, NULL); // displays the created frame on the screen
    }

    // this is the function that cleans up Direct3D and COM
    void cleanD3D(void)
    {
    d3ddev->Release(); // close and release the 3D device
    d3d->Release(); // close and release Direct3D
    }

    [\cpp]



  • das wäre der code



  • alterbro schrieb:

    [\cpp]

    Da muss ein Slash und kein Backslash hin.


Anmelden zum Antworten