Code::Blocks bringt mich um! Fehler wo gar keiner sein darf/kann

omg
alles klar, hätte ich auch selber drauf kommen müssen -.-

Ich poste das hier auch in diesem Thread, muss ja nicht ständig ein neuer eröffnet werden.

Ich habe nun versucht, erstmal Ein Programm mit DirectX initialisierung zum Laufen zu bringen,
ich bekomme aber Fehler, die ich mir wieder nicht erklären kann :rolleyes:
C++:
//Fenstererzeugung
//[...]
LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
        break;
    }
    return (DefWindowProc(hwnd, msg, wParam, lParam));
}
LPDIRECT3D9 lpD3D = NULL;
if(!(lpD3D = Direct3DCreate9(D3D_SDK_VERSION))) //Zeile 67
{
           MessageBox(0,"Fehler beim Erzeugen des Direct3D-Objekts.","Fehler",MB_OK);
}
BOOL InitDirect3D(HWND hWnd)
{
     lpD3D = Direct3DCreate9(D3D_SDK_VERSION);
     if(NULL == lpD3D)
     {
             MessageBox(0,"D3D-Objekt konnte nicht erzeugt werden.","Fehler",MB_OK);
             return FALSE;
     }
     D3DPRESENT_PARAMETERS PParams;
     ZeroMemory(&PParams,sizeof(PParams));
     
     PParams.SwapEffect = D3DSWAPEFFECT_DISCARD;
     PParams.hDeviceWindow = hWnd;
     PParams.Windowed = FALSE;
     
     PParams.BackBufferWidth = 800;
     PParams.BackBufferHeight = 600;
     PParams.BackBufferFormat = D3DFMT_A8R8GB8; //Zeile 88
     
     if(FAILED(lpD3D->CreateDevice( //Zeile 90
     D3DADAPTER_DEFAULT,
     D3DDEVTYPE_HAL,
     hWnd,
     D3DCREATE_SOFTWARE_VERTEXPROCESSING,
     &PParams,
     &lpD3DDevice)))
     {
        MessageBox(0,"Fehler, kann Gerät nicht anlegen","Fehler",MB_OK);
        return FALSE;
     }
     return TRUE;
}
void CleanUpDirect3D(void)
{
     if(lpD3DDevice != NULL) //Zeile 105
     {
            lpD3DDevice->Release();
            lpD3DDevice = NULL;
     }
     if(lpD3D != NULL)
     {
              lpD3D->Release();
              lpD3D = NULL;
    }
}
In function `BOOL InitDirect3D(HWND__*)':
Zeile 88 `D3DFMT_A8R8GB8' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)

Zeile 90 `lpD3DDevice' undeclared (first use this function)

In function `void CleanUpDirect3D()':
105 `lpD3DDevice' undeclared (first use this function)

[Build Error] [startseite.o] Error 1

Ich krieg hier echt ne Weißwurst!

Wäre nett wenn du (oder jmd anders) da auch noch ne antwort drauf weiß(t)
 
Hallo,
Ich hätte vieleicht eine Erklärung für die Fehlermeldungen. Leider habe auch ich Probleme mi Code::Blocks und habe mir deshalb die Beiträge in diesem Forum durchgelesen. Der Quellcode den du angegeben hast, kommt mir bekannt vor. Ich glaube, dass er aus dem Buch "jetzt lerne ich: Spieleprogrammierung mit DirectX" von Christian Roussele stammt. Sollte dies der Fall sein, so musst du wahrscheinlich einfach nur die Header-Datei "Direct3D.h" einbinden. In dieser Datei wurden die Funktionen Init(), Present(), Begin(),......deklariert.
Ich hoffe ich konnte helfen.
 
Zurück