Fehler im Codeworx DDraw Tutorial?



  • Hi

    ich experemtiere grade etwas mti DDraw, nach dem tut auf www.codeworx.org.

    ich hab die ddraw.h und die ddraw.lib includiert bzw. eingebunden.
    hier ma mein code:

    #include <windows.h>
    #include <ddraw.h>
    
    #define WindowTitle "DirectDraw-Tutorial"
    #define WindowClassName "DDWinClass"
    
    LONG FAR WINAPI WndProc (HWND , UINT , UINT , LONG) ;
    LPDIRECTDRAW7 lpDirectDraw;
    HRESULT ddrval;
    bool running;
    
    int WINAPI WinMain (HINSTANCE hInstance, 
    					HINSTANCE hPrevInstance, 
    					LPSTR lpCmdLine, 
    					int nCmdShow)
    {
       MSG msg ;
       HWND hwnd ;
       WNDCLASS wndclass ;
    
       if (!hPrevInstance)
       {
          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)GetStockObject (LTGRAY_BRUSH) ;
          wndclass.lpszMenuName = NULL ;
          wndclass.lpszClassName = WindowClassName ;
          RegisterClass (&wndclass) ;
       }
    
       hwnd = CreateWindow (WindowClassName ,
       WindowTitle ,
       WS_OVERLAPPEDWINDOW ,
       CW_USEDEFAULT ,
       CW_USEDEFAULT ,
       CW_USEDEFAULT ,
       CW_USEDEFAULT ,
       NULL , NULL ,
       hInstance , NULL) ;
       ShowWindow (hwnd , nCmdShow) ;
       UpdateWindow (hwnd) ;
    
            ddrval = DirectDrawCreateEx(NULL, (VOID**)&lpDirectDraw,    IID_IDirectDraw7, NULL);
               if (ddrval != DD_OK)
               {
                  return (0);
               }
    
            ddrval = lpDirectDraw->SetCooperativeLevel (hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
               if (ddrval != DD_OK)
               {
                  lpDirectDraw->Release();
                  lpDirectDraw = NULL;
                  return (0);
               }
    
            ddrval = lpDirectDraw->SetDisplayMode (640, 480, 8, 0, 0);
               if (ddrval != DD_OK)
               {
                  lpDirectDraw->Release();
                  lpDirectDraw = NULL;
                  return (0);
               }
    
        running=true;
    
        while(running)
        {
           if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
           {
              if (msg.message == WM_QUIT) break;
              TranslateMessage(&msg);
              DispatchMessage(&msg);
           }
        }
         return msg.wParam ;
    } // WinMain
    
    LONG FAR WINAPI WndProc (HWND hwnd , UINT message ,
                             UINT wParam , LONG lParam)
    {
       switch (message)
       {
          case WM_CREATE:
            {
    
            }
            break;
          case WM_KEYDOWN:
          {
              switch (wParam)
              {
                 case VK_ESCAPE:
                      {
                      running=false;
                      }
                      break;
              }
              return 0;
          } break;
    
          case WM_DESTROY:
    
          {
          if (lpDirectDraw != NULL)
               {
                  lpDirectDraw->Release();
                  lpDirectDraw = NULL;
               }  
             PostQuitMessage (0) ;
             return 0 ;
          } break;
       } // switch (message)
       return DefWindowProc (hwnd , message , wParam , lParam) ;
    } // WndProc
    

    abe rjetz kommen 5 linker errors:
    [Linker error] undefined reference to GetStockObject@4' [Linker error] undefined reference toIID_IDirectDraw7'
    [Linker error] undefined reference to `DirectDrawCreateEx@16'
    ld returned 1 exit status
    ...\Makefile.win [Build Error] [Game.exe] Error 1

    könntet ihr mir sagen, welche libs oder so noch fehlen?
    ich glabu nämlcih, das der ddraw.lib noch abhängigkeiten fehlern, ich müsste nur wissen welche 😞

    Mfg
    Eldarion



  • Steht z.b. in der MSDN, mit jedem Hexeditor kannst fu libs aufmachen. Fuer den DevCpp gibts wegen DX extra Seiten im Netz. Viel Spass. 😎

    Gruß, TGGC (\-/ has leading)



  • wen ich wüsste wie dsa gehn würde gerne 🙄
    wie soll ich bidde schön lib datein öffnen? dev-cpp macht das net 😉
    wenn ich das könnte, hätte ich wohl kaum gefragt 😉
    oder erwartest du jetz, das ich alle libs durchprobiere? 🙄



  • Eldarion schrieb:

    oder erwartest du jetz, das ich alle libs durchprobiere? 🙄

    😉 Eine davon wirds schon sein.



  • ich ha bjetz zumindens herausgefunden, das die dxguide.lib einen error behebt. 😃

    aber die andern namen haben absolut nichts mit ddraw zutun, und den rest hab ich schon durch. könntet ihr mir denn jetz bidde sagen welche fehlen?
    ich finds nämlich nich so lustig 😞



  • könntet irh mir das denn jetz wenigstens verraten? es muss doch leute geben, die ddraw initialiesiern können.


Anmelden zum Antworten