Beispiel für DirectX9.C Problem



  • TGGC schrieb:

    Es gibt da bestimmt so 20 oder 30 Dinge, die man machen sollte. Aber das ist Alles irgendwo in den Manuals oder im Netz beschrieben. Sollen wir jetzt hier jeden Punkt abhaken? f'`8k

    Autocogito
    Gruß, TGGC (\-/ has leading)

    Laut meinem Buch ist es so das die Installation des SDK ausreicht und keine weiteren Veränderung in den Optionen erforderlich macht. Da das SDK die Einstellungen & Einträge selbst vornimmt. Ich gehe aber von einem Code Problem aus und nicht von einem Einstellungsproblem.

    Ich habe es nur noch nicht gefunden, das kommt aber noch irgentwann.



  • Na gut dann nicht. Viel Spass noch beim Suchen im Code... f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)



  • TGGC schrieb:

    Na gut dann nicht. Viel Spass noch beim Suchen im Code... f'`8k

    Autocogito
    Gruß, TGGC (\-/ has leading)

    Danke werd ich haben.



  • Test.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__MessageBoxA@16" in Funktion "_WinMain@16".
    Test.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_Direct3DCreate9@4" in Funktion "_WinMain@16".

    Ich gehe aber von einem Code Problem aus und nicht von einem Einstellungsproblem.

    koennte schwierig werden, den code so umzuschreiben, dass der linker die d3d9.lib nicht mehr braucht 😉
    ich wuerd' vielleicht doch mal versuchen, die benoetigten libs einfach in den linker-einstellungen hinzuzufuegen...



  • hellihjb schrieb:

    ich wuerd' vielleicht doch mal versuchen, die benoetigten libs einfach in den linker-einstellungen hinzuzufuegen...

    und zwar unter Linker -> Eingabe



  • xindon schrieb:

    hellihjb schrieb:

    ich wuerd' vielleicht doch mal versuchen, die benoetigten libs einfach in den linker-einstellungen hinzuzufuegen...

    und zwar unter Linker -> Eingabe

    Stehen drin :(, Fehlermeldungen die selben.



  • MSVCRTD.lib(crtexe.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".

    das lässt vermuten, dass du ein Win32 konsolenprojekt statt einer normalen Win32 anwendung erstellt hast...

    sprintf(acAdapterInfo, "Adapter-ID: %d\n Name: %s\n Treiber: %s nTreiberversion: %d", 
                  iAdapter, 
                  g_pAdapters[iAdapter].Description, 
                  g_pAdapters[iAdapter].Driver, 
                  g_pAdapters[iAdapter].DriverVersion);
    

    ich denke es sollte "... %s\n Treiberversion..." heißen (nicht erkannte escapesequenz...)



  • jdj1982 schrieb:

    TGGC schrieb:

    Ja, das könntest du so konvertieren. Aber warum legst du deine Stringliterale dann nicht gleich als Unicode an? f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)

    Wie Konvertiere ich das bei einer MessageBox? Laut Hilfe von MS ist der MessageBox Inhalt: LPCTSTR.

    TGGC schrieb:

    Genau wie bei allem anderen. f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)

    @ TGGC: Für deine Antworten sollteste echt nen (anti) Preis gewinnen:

    Das ist wie:
    Kommt nen Außerirdischer zu TGGC und fragt:

    Alien: Wie überquert man bei euch ne Hauptstraße
    (Jeder würde antworten: "Mit Hilfe einer Ampel")
    TGGC: Wie bei allen anderen Straßen auch.
    (Syntaktisch und semantisch richtige Antwort die absolut nutzlos ist für den Fragenden)

    2. Beispiel:

    -Shadow- schrieb:

    Hallo,

    ich bin auf der suche nach einer Kettensäge, so für den Hausgebrauch.
    Also mal zum nen Baum fällen und entasten. Es sollte so ne mittelgroße Säge sein.
    Von diesem billig Baumarkt zeug lass ich die Finger das taugt nix.
    Jetzt meine Frage was würdet ihr euch kaufen eine Stihl oder ne Husqvarna?

    ...

    TGGC schrieb:

    Für sowas gibts glaube besser Foren. f'`8k

    Naja, jedenfalls Schutzbrille nicht vergessen. 😎

    Gruß, TGGC (\-/ has leading)

    Das ist wie:
    Autofreak: Wie schnell ist ein Opel GTI
    TGGC: Frag das besser in nem anderem Forum. Nen Auto hat 4 Räder!

    Wieder ne absolut sinnlose Antwort.

    @ TGGC: Ist dir überhaupt bewußt welches niedrige Niveau deine Antworten haben?

    Poste doch mal deine eigene Antworten bei
    http://www.games-net.de/hosted/tggc/index.php?cat=8
    Dann wirste bestimmt selbst Wochengewinner.

    Ich kann für dich nur hoffen, das du diese Antworten mit Absicht so sinnlos erstellst um deinen Beträge Counter zu erhöhen 😉



  • Na, nur keinen Neid. Du kannst übrigens auch selbst die von dir gewünschten Threads da vorschlagen. f'`8k

    Gruß, TGGC (\-/ has leading)



  • Hallo

    TGGC schrieb:

    Na, nur keinen Neid.

    Meinst du das ernst. Alle, die also nicht so wie du antworten, sind neidisch auf dich. Das hat doch mit Neid nichts zu tun.

    chrische



  • Nein nicht alle, die anders antworten. Sondern, wenn sich jemand über meine Antworten aufregt (Naja, manche sind evtl. auch nur dumm?). Das muss ja nun nicht sein. Ich reg mich ja auch nicht über Leute auf, die 5 Seiten Code zur Lösung posten. f'`8k

    Gruß, TGGC (\-/ has leading)



  • Hallo

    TGGC schrieb:

    Nein nicht alle, die anders antworten. Sondern, wenn sich jemand über meine Antworten aufregt (Naja, manche sind evtl. auch nur dumm?). Das muss ja nun nicht sein. Ich reg mich ja auch nicht über Leute auf, die 5 Seiten Code zur Lösung posten. f'`8k

    Gruß, TGGC (\-/ has leading)

    Wenn ich mich nicht täusche, habe ich da aber schon andere Töne von dir gehört und außerdem weißt du ja selber, dass die Art wie du antwortest schon Kritiker auf den Plan ruft.

    chrische



  • Du meinst, ich hätte jemand neidisch genannt, der sich vorher nicht über mich aufregt hatte? Das war dann vermutlich ein Versehen. f'`8k

    Gruß, TGGC (\-/ has leading)



  • TGGC schrieb:

    Nein nicht alle, die anders antworten. Sondern, wenn sich jemand über meine Antworten aufregt (Naja, manche sind evtl. auch nur dumm?). Das muss ja nun nicht sein. Ich reg mich ja auch nicht über Leute auf, die 5 Seiten Code zur Lösung posten. f'`8k
    Gruß, TGGC (\-/ has leading)

    Ein Forum ist dazu da fragen zu stellen! Es gibt natürlich Leute die eine 100% Antworten haben wollen um möglichst wenig selbst machen zu müssen. Das Bestreitet ich auch nicht. Es aber zu einer allgemeinen Tatsache zu erklären führt ein Forum ad adsurdum. Deine Antworten geben dem gegenüber das Gefühl das du keine Interesse hast zu helfen und nur Floskeln von dir gibst! Dies hilft keinem weiter und macht auch keinen Spaß. Viele Forumbesucher Programmieren in der Freizeit und da ist der Spaß am Programmieren die einzigste Motivation und diese nimmst du den Menschen durch deine Antworten. Dies finde ich nicht sehr Erwachwsen! Auch wenn dir meine Meinung nichts bedeutet wollte ich Sie loswerden! Danke für Lesen!

    Du solltest dich als neuer Stromberg oder Dr. House bewerben das könnte zu dir passen jedenfalls bekommt man diesen Eindruck.

    Auch wenn ich jetzt gebannt werde muss ich noch sagen. 😃 😃 😃



  • #include <Windows.h>
    #include <StdIO.h>
    #include <D3D9.h>
    
    int						g_iNumAdapters; //Anzahl der Adapter
    D3DADAPTER_IDENTIFIER9*	g_pAdapters;	//Adapterliste
    PDIRECT3D9				g_pD3D = NULL;	//IDirect3D9-Schnitstelle
    
    int WINAPI WinMain(HINSTANCE hInstance,
    				   HINSTANCE hPrevInstance,
    				   char* pcCmdLine,
    				   int iShowCmd)
    {
    
    	char acAdapterInfo[1024];
    
    	//Schnittstelle für Direct3D erzeugen
    	g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);
    	if(g_pD3D ==NULL)
    	{
    		//Fehler
    		MessageBox(NULL, "Fehler beim Erzeugen von Direct3D Schnittstelle",
    			             "Fehler", MB_OK | MB_ICONEXCLAMATION);
    		return 1;
    	}
    	//Adapter Anzahl ermitteln
    	g_iNumAdapters = g_pD3D->GetAdapterCount();
    
    	//Speicher reservieren und Informationen über jeden Adapter sammeln
    	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])))
    		{
    			//Fehler
    			MessageBox(NULL, "Adapter Information konnte nicht abgefragt werden!",
    					         "Fehler", MB_OK | MB_ICONEXCLAMATION);
    
    			//Aufräumen
    			g_pD3D->Release();
    			delete[] g_pAdapters;
    			return 1;
    		}
    
    		//Adapterinformation anzeigen
    		sprintf(acAdapterInfo, "Adapter-ID: %d\n Name: %s\n Treiber: %s\n Treiberversion: %d\n",
    			  iAdapter,
    			  g_pAdapters[iAdapter].Description,
    			  g_pAdapters[iAdapter].Driver,
    			  g_pAdapters[iAdapter].DriverVersion);
    
    		MessageBox(NULL, acAdapterInfo, "Adapter gefunden", MB_OK | MB_ICONINFORMATION);
    	}
    
    	//Aufräumen
    	g_pD3D->Release();
    	delete[] g_pAdapters;
    
    	return 0;
    }
    

    Der Code sieht jetzt so aus!

    Es sind alle Fehler weg bis auf:
    main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__MessageBoxA@16" in Funktion "_WinMain@16".

    Weiß jemand was noch der fehler sein könnte?

    Es es ein Projekt als Win32 Anwendung nicht Win32 Konsole.

    Im Linker sind "TriBaseD.LIB" "d3d9.lib" kernel32.lib

    Danke für die mühe bisher.
    JDJ



  • Dir fehlt das Platform SDK (nicht das DirectX SDK). Entweder du hast es erst gar nicht installiert oder die Einbindung klappt nicht.

    MfG SideWinder



  • SideWinder schrieb:

    Dir fehlt das Platform SDK (nicht das DirectX SDK). Entweder du hast es erst gar nicht installiert oder die Einbindung klappt nicht.
    MfG SideWinder

    Ich zitiere mich selbst!

    xindon schrieb:

    Muss man bei Visual Studio Express nicht auch noch das Platform SDK installieren wenn ich mich recht entsinne?



  • Hi!

    Habe mir nicht alles durchgelesen.

    Wenn du in den Projekt-Optionen bist, steht ganz links oben "Configuration".

    Bevor du etwas verstellst, sollte dort "All configurations" und nicht "Active(Debug)" stehen, insofern du nicht nur debug oder nur release umstellen willst.

    Vielleicht hilft dir das weiter...


Anmelden zum Antworten