Schaffe es nicht mit msvc++ 6.0 eine directx-anwendung auszuführen



  • 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.

    @LJ_1102:

    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 externals
    

    mit 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 nicht

    gebt 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.



  • Na ich wollt es schon sagen, zwischen dumm und du hast kein Grips ist kein Unterschied.

    Also das DXSDK9, das ich hier hab, unterstützt es definitiv. Da steht das direkt in der readme (lesen macht schlau). Ist aber nicht das neuste.

    Bye, TGGC (Das Jahr des Helden)



  • coldie schrieb:

    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 😕

    Auf der Portalseite für DirectX-Entwickler ( http://msdn.microsoft.com/directx/ ) steht unten "Top Newsgroups / Newsgroup Posts" und links unter "Community" sind Links zu DirectX Developer Newsgroups, u.a. "DirectX 101" (one-oh-one), was man mit "DirectX 1x1" (einmaleins) übersetzen könnte, wo also Einsteigerfragen diskutiert werden.
    Ich denke das ist mit "Forum" gemeint.

    coldie schrieb:

    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?

    Naja, VS6 kam '98 auf den Markt (wie man an den Systemvoraussetzungen auch sieht), und 7,5 Jahre sind im IT-Business nunmal alt. Oder entwickelst Du noch auf Deinem Pentium 166?

    Nein, VS2003.NET.

    coldie schrieb:

    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
    

    da über diese d3d9d.lib im internet nichts zu finden ist (google 59 unbrauchbare treffer)
    bin ich relativ verzweifel.

    Also g_hWnd und InitWindow() sind keine DirectX-Sachen. Da fehlt wohl eher bei Dir was.
    Und _main lässt wieder darauf schliessen, daß Du zur Konsole linkst aber nur WinMain() implementierst (oder umgekehrt?)...

    coldie schrieb:

    @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.

    Naja, wenn Du Dich sogar schon an DirectX versuchst, solltest Du wenigstens das niedrigste Handwerkszeug beherrschen.
    Du solltest wissen, daß bei der Binär-Erstellung von C/C++-Code erstmal über den Präprozessor #defines und #includes und #pragma comments aufgelöst und ggf. eingebunden werden, und dann jedes Modul für sich kompiliert wird. Die entstandenen .obj-Dateien werden dann beim Linken gegen sich selber und gegen API-Bibliotheken gelinkt, woraus die letztendliche ausführbare Datei entsteht (.exe, *.scr, *.dll, ..).
    Compile - kompiliert
    Build - kompiliert und linkt
    Execute - startet das fertige Programm (falls vorhanden), ansonsten == Build + Execute

    Da Du nur von "Buttons" die Du drückst redest, scheinst Du Dir dessen gar nicht bewußt zu sein, obwohl es in jedem C/C++-Tutorial auf der ersten Seite steht.

    Und auch wenn hier doofe Spacken wie der blöde "Sgt. Nukem" hier rumrennen, solltest Du Dir bewußt sein, daß Du Dich in einem Fachforum befindest. Auch das "Spiel" in "Spieleprogrammierung" steht dem nicht entgegen. Entsprechend kann man von (angehenden) Profis erwarten, die Hilfestellung auf höherer Ebene wollen, daß sie ihre Fragen und Probleme gezielt stellen und detailliert erklären, und daß sie zumindest über Grundlagenwissen auf niederer Ebene verfügen.

    Für Fragen a la "Mein Internet geht nicht. Wer kann helfen??!??!?!?!?!??" gehe bitte nach www.aol.de in eines der Computerforen. 🤡

    Achja: Auch wenn ich mich jetzt sehr ernst, grimmig und gemein anhöre: So ist es gar nicht gemeint! 🤡 👍
    Auch Pseudo-Rechtfertigungen die ggf. kommen mögen, a la "Du bist genauso blöd wie TGGC!" kannst Du stecken lassen -- die ignorier' ich eh!
    Vielmehr möchte ich ein "Ihr habt ja recht! Ich habe mich 'etwas' unklar ausgedrückt. Man möge mir das als Anfänger bitte nachsehen. (Was wir sicher tun werden.) Nach weiterer Nachforschung bei google und im Microsoft Board habe ich das Problem weiter eingrenzen können: Das Linken schlägt scheinbar wegen ...XX... fehl. Irgendwer 'ne Idee?!"
    Also nehm' Dir das zu Herzen... ...und happy coding! :xmas1:



  • Gott der Nukem labert schon wieder stundenlang.

    Bye, TGGC (Das Jahr des Helden)


Anmelden zum Antworten