Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: WinAPI Selvennys

kayttaja-3842 [05.01.2006 14:48:00]

#

Olen tässä ajatellut siirtyä DirectX:än multimedia kirjaston opiskeluun, mutta ennen kuin siirryn DirectX:ään haluasiin ja varmaan pitääkin osata WinAPI:ta kohtuu hyvin. Eli olen laittanut nyt tuohon alle lähdekoodin, johon tarvitsisin rivi riviltä selvennyksen. Eli siis voisiko joku kertoa rivi riviltä miksi sen kommennon pitää olla siinä ja mitä se tekee ja mitä jos sitä ei olisi siinä.

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    MSG msg ;
    WNDCLASSEX wndclass ;

    wndclass.cbSize = sizeof (wndclass) ;
    wndclass.style = CS_HREDRAW | CS_VREDRAW ;
    wndclass.lpfnWndProc = WndProc ;
    wndclass.cbClsExtra = 0 ;
    wndclass.cbWndExtra = 0 ;
    wndclass.hInstance = hInstance ;
    wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
    wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
    wndclass.hbrBackground = (HBRUSH) COLOR_WINDOW ;
    wndclass.lpszMenuName = NULL ;
    wndclass.lpszClassName = "OmaLuokka" ;     wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;

    RegisterClassEx (&wndclass) ;
    HWND hwnd = CreateWindow ("OmaLuokka",
        "Päivää maailma!",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        NULL,
        NULL,
        hInstance,
        NULL) ;

    ShowWindow (hwnd, iCmdShow) ;
    while (GetMessage (&msg, NULL, 0, 0) == TRUE)     {
        TranslateMessage (&msg) ;
        DispatchMessage (&msg) ;
    }

    return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
    switch (iMsg)
    {
    case WM_DESTROY:
        PostQuitMessage (0);
        return 0;
    }

    return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}

Metabolix [05.01.2006 19:34:39]

#

https://www.ohjelmointiputka.net/keskustelu/10962-win32-ohje
siellä jo vähän puitiin asiaa.

Käytännössä DirectX:n käyttöön ei juuri WinAPIa tarvita, jos siis Direct3D:tä aiot käyttää. Sen omista esimerkeistä saa myös pääasiat selville.

kayttaja-3842 [05.01.2006 21:24:57]

#

Osaisitko sanoa miten hyvin C++:saa pitäisi osata, jos aikoo opetella DirectX:ää

Metabolix [05.01.2006 22:03:43]

#

No enpä minä paljon osannut silloin 1,5v sitten. Muutaman kuukauden C++-kokemuksella sain aikaan tilepohjaisen grafiikkamoottorin DirectX8:lla, aiempi ohjelmointikokemus pari vuotta Pascalilla. WinAPIa osasin käyttää juuri sen verran, että sain ikkunan pystyyn ja siihen kuvan, sitten hyppäsin DX:ään.

Jonkinlainen ohjelmointipohja on hyvä olla, mutta ei se DirectX mikään ihmeellinen sinänsä ole (tai on se kyllä aika kumma, jos sitä niin katsoo ^^). Vielä kun se on jonkinlainen COM-systeemi eikä perus luokkapohjainen, niin se käyttäytyy hieman eri tavalla kuin tavalliset C++-jutut.

Parhaitenhan se selviää, kun jaksaa kokeilla ja säätää, palata aina taaksepäin ja tutkia uudestaan. Aika mukavasti tutoriaaleilla pärjää, kun niitä jaksaa jauhaa läpi.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta