Schaffe es nicht mit msvc++ 6.0 eine directx-anwendung auszuführen
-
Hallo,
Ich hab wirklich viel probiert und entschuldige mich jetzt schonmal wenn es solche fragen hier schon öfters gab
. Jedenfalls bekomme ich mit msvc++6.0 keine directx samples zum laufen. Ob es sich dabei um samples direkt aus dem sdk handelt oder welche von tutorials, ich kann sie alle nicht ausführen (kompilieren schon). Hab schon das directx sdk december und april 2005 und zuletzt das summer 2004 (+ dem extras update) runtergeladen und alles rumprobiert was ich im inet gefunden hab aber jetzt komm ich echt nicht weiter.
Nachdem ich das hier gemacht hab :Wir müssen Visual Studio auch noch sagen, wo es nach den DirectX-Header- und Bibliotheksdateien suchen soll. [...]
Klickt auf Tools -> Options -> Projects -> VC++ Directories. [...]DirectX SDK\DirectX9 SDK\Include. [...]
Die Zeile mit diesem Pfad muss an erster Stelle in der Liste stehen. [...]
Ist das geschehen verfahrt ihr genauso für die Bibliotheksdateien. [...]
Damit der Linker später beim Compilieren und Erstellen der ausführbaren Datei auch die Funktionen findet, die in den von uns eingebundenen Headerdateien stehen, müssen wir als letzte vorbereitende Maßnahme in den Linkereinstellungen des Projekts noch die entsprechenden Bibliotheken angeben. Klickt mit rechts auf den Namen des Projekts im Solution Explorer und dann auf Properties. Dort wählt ihr Linker -> Input. Im Feld Additional Dependencies gebt ihr d3d9d.lib dxerr9.lib kernel32.lib an. [...]sagt er beim Versuch eine directx-anwendung auszuführen, er könne d3d9d.lib nicht finden. Und wenn ich d3d9.lib daraus mache (müsste ja eigentlich auch gehen) kommen die Fehlermeldungen
Linking... Main.obj : error LNK2001: unresolved external symbol "struct HWND__ * g_hWnd" (?g_hWnd@@3PAUHWND__@@A) Main.obj : error LNK2001: unresolved external symbol "int __cdecl InitWindow(int,int,char *)" (?InitWindow@@YAHHHPAD@Z) LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/Main.exe : fatal error LNK1120: 3 unresolved externals Error executing link.exe.da über diese d3d9d.lib im internet nichts zu finden ist (google 59 unbrauchbare treffer)
bin ich relativ verzweifel. Wäre sehr dankbar wenn mir jemand den Fehler sagt, oder ein anderes Tutorial nennt, wo erklärt wird wie man msvc++6.0 einstellt um eine directx anwendung ausführen zu können
gruß coldie
-
hatte anfangs das gleiche Problem,
aber ich denke du hast vergessen die Libs als Libs auch zu includen, man muss nächmlich die include datein, die header und die Libs seperat einfügen, sry benutze die 6.0 nicht mehr, aber ich hab das Problem im offiziellen Microsoft Forum angesprochen, also guck mal da, ansosnten musst du warten bis jemand kommt der noch 6 benutzt...
-
Hmm ich glaube daran liegts nicht. Bei der installation des directx sdk summer 2004 wurden automatisch die directorys auf den sdk ordner angepasst. Von executable, include und library files. Aber trotzdem danke.
Und sry ich versteh nicht welches Forum du meinst. Ich konnte bei Microsoft nur ein Office Forum finden. Oder meinst du ein forum auf diesem Board
ach noch eins: Ich war mir garnicht bewusst das msvc6 jetz auch schon zum alten Eisen gehört ^^ nutzen jetzt alle visual studio 2005 express oder wie?
-
Also ich bin mir ziemlich sicher, dass d3d9d beim DX9-SDK dabei ist. Vielleicht hast du nur die Release-Runtime installiert und nicht Debug.
-
sagt er beim Versuch eine directx-anwendung auszuführen, er könne d3d9d.lib nicht finden
Zum Ausführen werden doch keine Libs gebraucht?
Bye, TGGC (Das Jahr des Helden)
-
Zum Ausführen werden doch keine Libs gebraucht?
Falls das eine Verwechslung sein sollte: Ich meine mit "ausführen" nicht das ausführen der fertigen exe datei sondern das erstellen der exe (F5). Das kompilieren geht komischerweise. Ansonsten dachte ich eigentlich schon das man libs dafür braucht

Hab nochmal wegen runtime und debug geschaut. Beim installieren (summer 2004 sdk) ist die option markiert, aber ich hab ganz übersehen das er ne fehlermeldung bringt
directx runtime setup failed (-5)
(installiert aber fertig als wäre nichts gewesen. Mal schauen ob ich bei den neueren sdks die debug installieren kann
-
coldie schrieb:
Falls das eine Verwechslung sein sollte: Ich meine mit "ausführen" nicht das ausführen der fertigen exe datei sondern das erstellen der exe (F5).
Du meinst also mit Ausführen nicht Ausführen, sondern Erstellen. Warum sagst du dann nicht einfach Erstellen. Sollen wir raten?
Bye, TGGC (Das Jahr des Helden)
-
TGGC jeder der einigermaßen Grips hat kann sich das denken ....
@coldie
beachte ihn einfach nicht... ich guck nochmal nach dem MS forum
-
Fall auf die kniehe :p
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=141961&SiteID=1
das waren grade 20 min von meiner zeit das wieder zu finden!
ansonsten das MS Forum zu VC++
http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=29&SiteID=1
-
Fallt lieber selber mal auf die Knie. Diese Fragen zu den Compilereinstellungen hatten wir hier schon x-mal. Jeder mit etwas Grips hätte das also leicht nachschlagen können. Zudem steht es in der DX Doku. D.h. nach menschlichem Ermessen sollten nach so ein Fehler hier überhaupt nicht gefragt werden. Nur wenn man natürlich noch nichtmal zwischen Ausführen und Erstellen unterscheiden kann, wird man sowas wohl nicht selber lösen können. Aber bitte, bleibt halt dumm. Ich bin es ja nicht, der hier was will, und sch deswegen etwas Mühe geben sollte, sich vernünftig Auszudrücken. Man Leute, überdenkt mal die Tatsachen!
Bye, TGGC (Das Jahr des Helden)
-
TGGC schrieb:
Fallt lieber selber mal auf die Knie. Diese Fragen zu den Compilereinstellungen hatten wir hier schon x-mal. Jeder mit etwas Grips hätte das also leicht nachschlagen können. Zudem steht es in der DX Doku. D.h. nach menschlichem Ermessen sollten nach so ein Fehler hier überhaupt nicht gefragt werden. Nur wenn man natürlich noch nichtmal zwischen Ausführen und Erstellen unterscheiden kann, wird man sowas wohl nicht selber lösen können. Aber bitte, bleibt halt dumm. Ich bin es ja nicht, der hier was will, und sch deswegen etwas Mühe geben sollte, sich vernünftig Auszudrücken. Man Leute, überdenkt mal die Tatsachen!
Bye, TGGC (Das Jahr des Helden)
jeder mit etwas grips ignoriert deine posts. jeder mit etwas grips findet es nicht lustig sarkastische kommentare zu ernst gemeinten fragen zu schreiben(es sei denn er hat irgendwo anders heftige komplexe die er kompensieren muss) . und entschuldigung, wenn du alles was du schreibst ernst meinst, bist du einfach nur dämlich. sicher wird auf diesen post wieder ein troll von dir kommen. die erste idee klau ich dir schon weg. du würdest antworten:"wenn jeder mit etwas grips meine post ignoriert, hast du also keinen grips ja?" oder so in der art. da sage ich einfach. jeder mit etwas grips ermahnt dich mal.
-
Was bitte findest du sarkastisch, wenn man jemanden sagt, er solle Erstellen bitte Erstellen nennen? Ist das nicht eher eine Selbstverständlichkeit? Sarkastisch ist es, wenn 10 Leute Zeit investieren und libs erklären und am Ende rauskommt: "Man ich hab doch blubb.dll gemeint, mit etwas Grips hättet ihr gewusst, das bei Ausführen nur dlls fehlen können." Nicht das doclhe Dinge hier vorkommen würden.
Und natürlich meine ich _alles_ ernst. Schliesslich kann ich alles. Ich bin Gott. Ich _bin_ es. Also was wilst du Wicht überhaupt von mir.
Bye, TGGC (Das Jahr des Helden)
-
TGGC schrieb:
Was bitte findest du sarkastisch, wenn man jemanden sagt, er solle Erstellen bitte Erstellen nennen? Ist das nicht eher eine Selbstverständlichkeit? Sarkastisch ist es, wenn 10 Leute Zeit investieren und libs erklären und am Ende rauskommt: "Man ich hab doch blubb.dll gemeint, mit etwas Grips hättet ihr gewusst, das bei Ausführen nur dlls fehlen können." Nicht das doclhe Dinge hier vorkommen würden.
Und natürlich meine ich _alles_ ernst. Schliesslich kann ich alles. Ich bin Gott. Ich _bin_ es. Also was wilst du Wicht überhaupt von mir.
Bye, TGGC (Das Jahr des Helden)
anonymität im internet ist dolle. und dass man dein gesicht und deinen namen kennt ist noch lange nicht genug um das nicht ausnutzen zu können.
wir beide wissen das du der wicht von uns bist
-
So, dazu mache ich erstmal ein _ernstes_ Gesicht. Ach das kennst du ja, das muss ich ausnutzen.
BTW: Was wollen der Herr mir mitteilen?
Bye, TGGC (Das Jahr des Helden)
-
TGGC schrieb:
So, dazu mache ich erstmal ein _ernstes_ Gesicht. Ach das kennst du ja, das muss ich ausnutzen.
BTW: Was wollen der Herr mir mitteilen?
Bye, TGGC (Das Jahr des Helden)
Was wollen der Herr mitteilen?
-
Das letzte was ich wollte ist das hier jetzt ein geflame ausbricht tztz...
@TGGC: Tut mir leid, der Button den ich benutze heißt "Execute Program" was ich in wilder Unvernunft als "ausführen" bezeichnet habe. Es gibt auch einen Button der Build heisst und praktisch dasselbe macht wie der "Execute Program Button", nur wäre mir als Threadtitel "kann kein directx prog mit msvc++6 builden" etwas seltsam vorgekommen. Im nachhinein muss ich zugeben, dass man den Thread auch verstehen so könnte, ich würde es nicht schaffen eine mit msvc++6 erstellte directx anwendung auszuführen (mit dem kleinen Schönheitsfehler, das "erstellte" im Titel fehlt). Allerdings habe ich ja geschrieben "mit msvc++6 eine directx anwendung ausführen" was auch wiederum nicht auf dieses Thema passen würde. Außerdem würde keine Fehlermeldung in der von mir zitierten Form erscheinen wenn die exe bereits vorhanden wäre. Also fazit: Ich gebe zu das ich besser hätte "erstellen" sagen sollen
anstatt "ausführen" naja wie auch immer.die d3d9d.lib scheint wohl doch nicht im directx sdk drin zu sein, das feature "Developer Runtime" <- das einzige was irgendwas mit debug zu tun hat- wird standartmäßig installiert.
Danke für deine mühe mit dem ms-forum. Ja leider hab ich ja vc++6.0 und da ist das irgendwie anderst, es scheint keine option "linker" zu geben, sondern nur
bei Project settings eine option namens "link", dort habe ich einfach unter "Object/library modules" die im tutorial genannten libs eingetragen. Komischerweise gibt es einige vc++6.0 tutorials gefunden wo es heist man braucht lediglich unter Options die standard-Directorys anzupassen (was natürlich nicht zum Ziel führt). Argh! Vielleicht sollte ich mir doch visual c++ 2005 express holen.
-
Vielleicht solltest du erstmal lernen, wie das Studio funktioniert? Execute führt die letzte erstellte Exe aus, genau wie mit Doppelklick nur mit den im Studio aktivierten Verzeichnissen und Parametern. Ist die exe aber nicht aktuell, dann wird neu erstellt. Das hast _du_ gemacht. Build heisst übrigens auf Deutsch Erstellen, wenig seltsam. Und Build erstellt nur und führt nicht aus. Ausserdem gibt es ja wohl keine d3d9d.lib, nur eine d3d9d.dll. Und lib-Dateien sind auch nicht in der Runtime. D.h. ausser durch gutes Raten konnte man dein Problem nicht lösen. Und darauf habe ich einfach mal hingewiesen. Ich sehe es nicht ein, dass ich mich als dumm usw. bezeichnen lassen muss, weil ich auf Unklarheiten in der Frage hinweise.
So wie ich es sehe, solltest du diese lib nicht linken. Damit hätte ich dein Problem gelöst.
Bye, TGGC (Das Jahr des Helden)
-
Mag sein, ich hab halt gleich auf execute gedrückt damit er das Prog auch ausführt. Leider geht es ohne das linken der libs auch net (das hab ich ja zuerst gemacht) dann sagt er
Main.obj : error LNK2001: unresolved external symbol "struct HWND__ * g_hWnd" (?g_hWnd@@3PAUHWND__@@A) Main.obj : error LNK2001: unresolved external symbol _Direct3DCreate9@4 Main.obj : error LNK2001: unresolved external symbol "int __cdecl InitWindow(int,int,char *)" (?InitWindow@@YAHHHPAD@Z) LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/Main.exe : fatal error LNK1120: 4 unresolved externalsmit dem wort dumm, das musste wohl zugeben hast du zuerst angefangen sowas artet natürlich dann schnell in geflame aus :xmas2: ok LJ_1102 hat Grips gesagt... nja
-
d3d9d.lib gibt es nicht, nur die d3d9.lib

-
nur verstehe ich nicht warum dann in diesem tutorial
http://forum.2lucky.de/archive/o_t__t_3521__direct3d-tutorial-teil1-by-monkey.html
explizit darauf hingewiesen wird. Ein tippfehler ist es ja offensichtlich nichtgebt ihr d3d9d.lib dxerr9.lib kernel32.lib an. Das ‚d’ bei d3d9d.lib steht für die Debug-Version der Bibliothek. Diese Konfiguration ist auch standardmäßig eingestellt und wird von uns beibehalten, um im Bedarfsfall die Anwendung besser debuggen zu können.
selstam seltsam...
€: ok im microsoft forum hat einer gesagt das es überhaupt nicht mehr unterstützt wird. Dann hole ich mir eben vc express.