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



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



  • TGGC schrieb:

    Gott der Nukem labert schon wieder stundenlang.

    TGGC == Gott

    einsetzen ergibt:

    TGGC der Nukem labert schon wieder stundenlang.

    Parser error: TGGC is not an l-value. 🤡



  • Sgt. Nukem schrieb:

    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?)...

    ja stimmt das sieht mir nach grundlegenden sachen aus die zum erstellen eines Fensters notwendig sind (soweit ich das mit meinen tatsächlich recht mäßigen c++ Kentnissen beurteilen kann)wirklich seltsam...

    Sgt. Nukem schrieb:

    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

    Stimmt, ich war mir zuerst nicht bewusst, dass execute nicht jedesmal neu kompiliert/linkt. Wie gesagt hätte ich halt erstellen sagen sollen.

    Sgt. Nukem schrieb:

    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.

    Nunja es war eben kein Problem im Code. Bevor ich mit einer einfachen directx anwendung starte wollte ich erstmal eine schon vorhandene manipulieren. Um zu sehen das sie überhaupt funktioniert also vor der ersten manipulation mal testen -> und ging net. Ne andere genommen -> ging net, noch eine genommen [...] demzufolge dachte ich es reicht aus die Fehlermeldungen und die schritte die ich unternommen habe um vc++6 auf directx einszustellen zu schildern, da ja der code offensichtlich richtig sein muss.

    Sgt. Nukem schrieb:

    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!

    🙄 für wen hälst du mich? Aber andererseits wenn ihr euch gegenseitig andauernd mit mittelmilden Beschimpfungen eindeckt warum darf ich es euch dann nicht gleichtun ? 😃

    Sgt. Nukem schrieb:

    Vielmehr möchte ich ein [...] hören(?)
    Also nehm' Dir das zu Herzen... ...und happy coding!

    Ja wie gesagt ich wusste nicht das er net jedesmal neu kompiliert demzufolge habt ihr natürlich umso mehr recht :p Wie gesagt ich probiers jetzt mal mit vc++2005 express. Nachdem du mich darauf hingewiesen hast, dass es nicht unbedingt an directx resourcen fehlt denke ich mal die mit dem compiler mitgelieferten dateien sind nicht vollständig. Und bevor ich vc6 nochmal installier lieber gleich vc2005. <-wie du siehts zu herzen genommen

    &happy coding zurück :xmas2:



  • coldie schrieb:

    Sgt. Nukem schrieb:

    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!

    🙄 für wen hälst du mich?

    Du hast 7 Beiträge - für wen sollte ich Dich halten?!? Kann mir da noch keinen Reim drauf machen... 🙂

    Naja, es gibt halt auch hier so Spezialisten, die jede Kritik als persönlichen Angriff werten und zur Verteidigung dann erstmal ein paar "Du bist doof, ey!"-Pointer in den Wald schiessen... Daher... 😉

    coldie schrieb:

    Aber andererseits wenn ihr euch gegenseitig andauernd mit mittelmilden Beschimpfungen eindeckt warum darf ich es euch dann nicht gleichtun ? 😃

    Darfst Du ja. 🤡



  • Mittelmild?! Das betrachte ich als Beschimpfung.

    Bye, TGGC (Das Jahr des Helden)



  • Hah! Du willst mich wohl auf deine Stufe runterziehen indem du mir ne Beschimpfung anhängst, wie? 😉

    btw. hab ichs jetzt mit vc++ 2005 express endlich geschafft das zeug zum laufen zu bringen, jetzt kanns endlich losgehen 😋


Anmelden zum Antworten