Ich habe ein Problem mit einer einfachen Adapterinformationausgabe mit DirectX9.0c



  • Wenn ich versuche den Quellcode unten zu verlinken taucht ein Fehler auf den ich nicht versteh.

    #include <Windows.h>
    #include <StdIO.h>
    #include <D3D9.h>
    
    int WINAPI WinMain(HINSTANCE hInstance,
    				   HINSTANCE hPrevInstance,
    				   char* pcCmdLine,
    				   int iShowCmd)
    {
    	//Schnittstelle für Direct3D erzeugen
    	PDIRECT3D9 pD3D = Direct3DCreate9(D3D_SDK_VERSION);
    	if(pD3D)
    	{
    		//Fehler beim erzeugen der Schnittstelle
    		MessageBox(NULL, "Fehler beim Erzeugen der Direct3D-Schnittstelle!",
    			       "Fehler", MB_OK | MB_ICONEXCLAMATION);
    		return 1;
    	}
    
    	// Anzahl der Adapter ermitteln
    	int iNumAdapters = pD3D->GetAdapterCount();
    
    	// Speicher resevieren und Informationen über jeden Adapter sammeln
    	D3DADAPTER_IDENTIFIER9* pAdapters = new D3DADAPTER_IDENTIFIER9[iNumAdapters];
    
    	for(int iAdapter = 0; iAdapter < iNumAdapters; iAdapter++)
    	{
    		if(FAILED(pD3D->GetAdapterIdentifier(iAdapter, 0,
    			                                  &pAdapters[iAdapter])))
    		{
    			// Fehler!
    			MessageBox(NULL, "Adapterinformation konnte nicht abgefragt werden!",
    				       "Fehler", MB_OK | MB_ICONEXCLAMATION);
    
    			//Aufräumen
    			pD3D->Release();
    			delete[] pAdapters;
    			return 1;
    		}
    
    		//Adapterinformation anzeigen
    		char acAdapterInfo[1024];
    		sprintf(acAdapterInfo, "Adapter-ID: %d\n"
    			                   "Name: %s\n"
    							   "Treiber: %s\n"
    							   "nTreiberversion: %d",
    							   iAdapter,
    							   pAdapters[iAdapter].Description,
    							   pAdapters[iAdapter].Driver,
    							   pAdapters[iAdapter].DriverVersion);
    
    		MessageBox(NULL, acAdapterInfo, "Adapter gefunden",
    			       MB_OK | MB_ICONINFORMATION);
    	}
    
    	// Aufräumen
    	pD3D->Release();
    	delete[] pAdapters;
    
    	return 0;
    }
    
    :
    
    Temporäre Dateien und Ausgabedateien für "lerning - Win32 Release" werden gelöscht.
    --------------------Konfiguration: lerning - Win32 Release--------------------
    Kompilierung läuft...
    1.cpp
    Linker-Vorgang läuft...
    1.obj : error LNK2001: Nichtaufgeloestes externes Symbol _Direct3DCreate9@4
    Release/lerning.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.
    
    lerning.exe - 2 Fehler, 0 Warnung(en)
    

    Vielen Dank schon mal im Voraus 😉

    [edit=rapso]tags rein[/edit]



  • Bei Fragen zu meinem Buch kannst Du auch in meinem Forum posten (www.spieleprogrammierer.de). Da wurde diese Frage nämlich schon ca. 20x beantwortet.
    Es ist die D3D9.LIB, die Du vergessen hast zu linken.



  • Ich hab gedacht ich hätte die verlinkt
    😞

    Ich könnte im Boden versinken
    Dabei stand das doch dabei
    trotzdem danke hat mir viel geholfen



  • Es ist wahrscheinlich wieder eine Frage die sich von selbs beantwortet aber jetz meldet sich die MessageBox mit der Fehlermeldung "Fehler bei Erzeugen der Direct3D-Schnittstelle!"



  • Du hast ein "!" vergessen, bei der if-Abfrage... 🙄



  • Ach so,
    aber dir ist bewusst das da kein "!" im Buch drin steht ?!



  • Bei mir steht da
    if(pD3D == NULL)

    was dasselbe ist wie
    if(!pD3D)



  • lolotw 😞



  • Bei mir steht keins von beidem 😞


Anmelden zum Antworten