Probleme bei Dev-Cpp und DirectX



  • Hy,
    ich möchte folgenden Code kompilieren:

    #include <windows.h>
    #include <StdIO.h>
    #include <D3D9.h>
    
    int g_iNumAdapters;
    D3DADAPTER_IDENTIFIER9* g_pAdapters;
    PDIRECT3D9  g_pD3D = NULL;
    
    int WINAPI WinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       char* pcCmdLine,
                       int iShowCmd)
    {
      char acAdapterInfo[1024];
    
      g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);
      if(g_pD3D == NULL)
      {
        MessageBox(NULL, "Fehler!",
                   "Fehler", MB_OK | MB_ICONEXCLAMATION);
        return 1;
      }
      g_iNumAdapters = g_pD3D->GetAdapterCount();
    
      g_pAdapters = new D3DADAPTER_IDENTIFIER9[g_iNumAdapters];
    
      for(int iAdapter = 0; iAdapter < g_iNumAdapters; iAdapter++)
      {
        if(FAILED(g_pD3D->GetAdapterIdentifier(iAdapter, 0,
                                               &g_pAdapters[iAdapter])))
        {
          MessageBox(NULL, "Fehler!",
                     "Fehler", MB_OK | MB_ICONEXCLAMATION);
    
          g_pD3D->Release();
          delete[] g_pAdapters;
          return 1;
        }
        sprintf(acAdapterInfo, "Adapter-ID: %d\n Name: %s\n Treiber: %s\n Treiberversion: %d",
                iAdapter,
                g_pAdapters[iAdapter].Description,
                g_pAdapters[iAdapter].Driver,
                g_pAdapters[iAdapter].DriverVersion);
      }
    
      g_pD3D->Release();
      delete[] g_pAdapters;
    
      return 0;
    }
    

    , aber ich krieg immer diesen Fehler:

    [Linker error] undefined reference to `Direct3DCreate9@4'
    

    Ich hab' die DX SDK normal eingestellt und d3d9 gelinkt.

    Wo liegt der Fehler?



  • Hey, ich hab denselben Fehler wie du! Benutz DevC++ 4.9.80!

    Hast du auch das Buch "Modernes Game-Design...."?

    Bin genau so wie du an derselben Stelle hängen geblieben. Leider fand ich keine Lösung und bin momentan noch auf der Suche.

    Meinst du es liegt am DevC++? Gelinkt hab ich auch alles richtig, aber es klappt einfach nicht! Wäre nett, wenn du mir antworten könntest, wenn du ne Lösung hast!



  • Der letzte Post ist zwar fast ein Jahr alt, aber was soll's 🙂
    Ich habe genau das gleiche Problem. Vermute es liegt an einer fehlenden LIB. Wenn ich im VisualSdutio die LIB d3d9.lib einbinde geht's da. Aber bei Dev-Cpp gibt's keine Linker-Einstellungen, wo man die LIBs eintragen kann (oder ich finde einfach keine). Ach ja, das DX9-Pack habe ich installiert. Aber ich habe keine Ahnung wo jetzt die LIBs sind. Hoffe mir kann jemand helfen.
    mfg Christkind
    (und schönen ersten Weihnachtstag btw.)



  • Okay, war eigentlich garnicht so schwer. Also für alle, die das gleiche Problem haben/hatten oder haben werden:
    Bei der Meldung da oben, muss man sich erstmal das Dev-DirectX9-Package runterladen. Das geht am bequemsten über "Werkzeuge" -> "auf Updates/Pakete prüfen". Wenn man sich dieses DirectX-Package dann runtergeladen hat, installiert man es sich. 😉 Danach geht man zu den Projekt Optionen des DirectX-Projektes. Dort klickt man oben auf "Parameter" und dann auf "Bibliothek/Objekt hinzufügen". Jetzt sucht man sich die Datei "libd3d9.a". Sie befindet sich im Verzeichnis '*Dev-Cpp\lib*'. So, wenn die LIB eingebunden ist, klickt man noch auf den netten "OK"-Button 😉 und schon bekommt man beim Kompilieren keine Fehlermeldung mehr. Naja, zumindest bekommt die oben genannte Fehlermeldung nicht mehr.
    Hoffe ich konnte jemandem damit helfen.
    mfg Christkind



  • Christkind schrieb:

    Das geht am bequemsten über "Werkzeuge" -> "auf Updates/Pakete prüfen". Wenn man sich dieses DirectX-Package dann runtergeladen hat, installiert man es sich. 😉

    Ich finde da leider kein DirectX Package 😞



  • ui. nach anderem update und neustarten ist es plötzlich dabei. ok mal testen 😉


Anmelden zum Antworten