Problem bei 3D_Programmierung



  • #include <windows.h>
    #include <d3dx9.h>
    #include <dinput.h>
    
    HWND main_window_handle = NULL; 
    HINSTANCE hinstance_app = NULL; 
    #define WINDOW_CLASS_NAME "Game Shell Window" 
    #define WIN32_LEAN_AND_MEAN 
    
    LPDIRECT3D9 lp3D = NULL;
    LPDIRECT3DDEVICE9 lp3DDevice = NULL;
    
    #define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0) 
    #define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)
    
    void Init_3D(); 
    
    LRESULT CALLBACK WindowProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam) 
    { 
    
    PAINTSTRUCT ps; 
    HDC hdc; 
    
    switch(msg) 
    { 
        case WM_CREATE: 
        { 
            return(0); 
        } 
        break; 
    
        case WM_PAINT: 
        { 
            hdc = BeginPaint(hwnd,&ps); 
            EndPaint(hwnd,&ps); 
            return(0); 
        } 
        break; 
    
        case WM_DESTROY: 
        { 
            PostQuitMessage(0); 
            return(0); 
        } 
        break; 
    
        default: 
        break; 
    
    } 
    return (DefWindowProc(hwnd, msg, wparam, lparam)); 
    
    } 
    
    int WINAPI WinMain( HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR lpcmdline,int ncmdshow) 
    { 
    
    WNDCLASSEX winclass; 
    HWND hwnd; 
    MSG msg; 
    
    winclass.cbSize = sizeof(WNDCLASSEX); 
    winclass.style = CS_HREDRAW | CS_VREDRAW; 
    winclass.lpfnWndProc = WindowProc; 
    winclass.cbClsExtra = 0; 
    winclass.cbWndExtra = 0; 
    winclass.hInstance = hinstance; 
    winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); 
    winclass.hCursor = LoadCursor(NULL, IDC_ARROW); 
    winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); 
    winclass.lpszMenuName = NULL; 
    winclass.lpszClassName = WINDOW_CLASS_NAME; 
    winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); 
    
    hinstance_app = hinstance; 
    
    if (!RegisterClassEx(&winclass)) 
    return(0); 
    
    if (!(hwnd = CreateWindowEx(NULL,WINDOW_CLASS_NAME,"My Game Shell",WS_POPUP | WS_VISIBLE,0,0,1680,1050,NULL,NULL,hinstance,NULL))) 
        return(0); 
    
    main_window_handle = hwnd; 
    
    Init_3D();
    while(TRUE) 
        { 
        if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)) 
        { 
    
        if (msg.message == WM_QUIT) 
        break; 
    
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
        if(KEYDOWN(VK_ESCAPE)) 
        { 
    
        SendMessage(main_window_handle,WM_CLOSE,0,0); 
    
        } 
    
        } 
    
        } 
    
    return(msg.wParam); 
    
    } 
    
    void Init_3D()
    {
    
        lp3D = Direct3DCreate9(D3D_SDK_VERSION); 
        D3DPRESENT_PARAMETERS dpp; 
        ZeroMemory(&dpp,sizeof(dpp)); 
        dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; 
        dpp.BackBufferCount = 1; 
        dpp.BackBufferWidth = 1680; 
        dpp.BackBufferHeight = 1050; 
        dpp.Windowed = TRUE; 
        dpp.BackBufferFormat = D3DFMT_UNKNOWN;
        dpp.hDeviceWindow = main_window_handle; 
        lp3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,main_window_handle,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&dpp,&lp3DDevice); 
    }
    

    Leider ergibt dieser Code, diese Fehlermeldung:

    1>sfad.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_Direct3DCreate9@4" in Funktion ""void __cdecl Init_3D(void)" (?Init_3D@@YAXXZ)".
    1>C:\Users\Michael\Documents\Visual Studio 2008\Projects\einfache Programmierung\Debug\einfache Programmierung.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
    


  • Sieht so aus als hättest du das lib von DirectX vergessen.


Anmelden zum Antworten