Hilfe !!! Spieleprogrammierung in C++ "Galileo Computing"



  • Hallo, vielleicht postest Du mal ein paar Fehler damit man eher nachvollziehen kann, was dein Problem sein könnte (Linkerfehler, etc.).

    Gruß

    Bertram



  • Hallo,
    danke erstmal, dass überhaupt jemand so schnell geantwortet hat.

    Zu dem Tip:
    Das Projekt im Buch ist in 12 Versionen aufgeteilt, man soll nur die erste Version (die compiliert nur ein Window Rahmen ist) als Einstieg nutzen.
    Da ein Anfänger halt noch nicht weiß wie komplexe Projekte zusammengefügt werden (z.B welche Libraries). Die Folgeversionen werden selbst erstellt.

    Fehlermeldung:
    Versuche ich die Version 1 zu compilieren so erscheint folgende Meldung:

    "c:\Programme\Microsoft Visual Studio\My Projects\V01\ddutil.h

    Kann nicht Kompiliert werden; der Dateierweiterung ist kein Kompilierungstool zugeordnet."

    Wähle ich Alles neuerstellen , wird compiliert und es erscheinen folgende Fehlermeldungen.

    Demo.cpp
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(43) : error C2320: Auf den Zugriffsbezeichner ';' muss ':' folgen
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(44) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_pDD'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(44) : error C2501: 'LPDIRECTDRAW7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(44) : error C2501: 'm_pDD' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(45) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_pddsFrontBuffer'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(45) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(45) : error C2501: 'm_pddsFrontBuffer' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(46) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_pddsBackBuffer'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(46) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(46) : error C2501: 'm_pddsBackBuffer' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(47) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_pddsBackBufferLeft'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(47) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(47) : error C2501: 'm_pddsBackBufferLeft' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(60) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GetDirectDraw'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(60) : error C2501: 'LPDIRECTDRAW7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(60) : warning C4183: 'GetDirectDraw': Definition der Member-Funktion sieht aus wie ctor, aber der Name entspricht nicht der umschliessenden Klasse
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(61) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GetFrontBuffer'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(61) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(61) : warning C4183: 'GetFrontBuffer': Definition der Member-Funktion sieht aus wie ctor, aber der Name entspricht nicht der umschliessenden Klasse
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(62) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GetBackBuffer'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(62) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(62) : warning C4183: 'GetBackBuffer': Definition der Member-Funktion sieht aus wie ctor, aber der Name entspricht nicht der umschliessenden Klasse
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(63) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GetBackBufferLEft'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(63) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(63) : warning C4183: 'GetBackBufferLEft': Definition der Member-Funktion sieht aus wie ctor, aber der Name entspricht nicht der umschliessenden Klasse
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(91) : error C2061: Syntaxfehler : Bezeichner 'LPDIRECTDRAWSURFACE7'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(93) : error C2061: Syntaxfehler : Bezeichner 'LPDIRECTDRAWSURFACE7'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(110) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_pdds'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(110) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(110) : error C2501: 'm_pdds' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(111) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_ddsd'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(111) : error C2501: 'DDSURFACEDESC2' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(111) : error C2501: 'm_ddsd' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(115) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GetDDrawSurface'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(115) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(115) : warning C4183: 'GetDDrawSurface': Definition der Member-Funktion sieht aus wie ctor, aber der Name entspricht nicht der umschliessenden Klasse
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(128) : error C2061: Syntaxfehler : Bezeichner 'LPDIRECTDRAW7'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(129) : error C2061: Syntaxfehler : Bezeichner 'LPDIRECTDRAWSURFACE7'
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(129) : error C2535: 'long __thiscall CSurface::Create(void)' : Member-Funktion bereits definiert oder deklariert
    c:\programme\microsoft visual studio\myprojects\v01\ddutil.h(128) : Siehe Deklaration von 'Create'
    c:\programme\microsoft visual studio\myprojects\v01\dsutil.h(50) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_pDS'
    c:\programme\microsoft visual studio\myprojects\v01\dsutil.h(50) : error C2501: 'LPDIRECTSOUND8' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft visual studio\myprojects\v01\dsutil.h(50) : error C2501: 'm_pDS' : Fehlende Speicherklasse oder Typbezeichner
    Fehler beim Ausführen von cl.exe.

    Demo.obj - 37 Fehler, 5 Warnung(en) 😕

    mmh, wie ordne ich nen Kompilierungstool zu? Die Version 1 enthält folgende Dateien:

    Orner Debug
    Ordner Release
    ddutil.cpp
    ddutil.h
    demo.aps
    demo.cpp
    demo.dsw
    demo.dsp
    demo.h
    demo.ncb
    demo.opt
    demo
    demo.rc
    dsutil.cpp
    dsutil.h
    dxutil.cpp
    dxutil.h
    icon
    resource.h

    Im Buch steht demo.dsw doppel-klick und compilieren?



  • Das Problem dürfte darin liegen, dass deine Entwicklungsumgebung nicht weiß, wo die include bzw. lib Dateien von DirectX8 liegen. Dazu unter Extras->Optionen->Verzeichnisse sowohl den Order der Include (.h) wie auch den der lib Dateien angeben (Im DXSDK Ordner)



  • mac_bu schrieb:

    Das Problem dürfte darin liegen, dass deine Entwicklungsumgebung nicht weiß, wo die include bzw. lib Dateien von DirectX8 liegen. Dazu unter Extras->Optionen->Verzeichnisse sowohl den Order der Include (.h) wie auch den der lib Dateien angeben (Im DXSDK Ordner)

    Von Ding her schon nicht schlecht, aber wenn der compiler nach ddutil.h wird er nichts finden.

    Mein Tipp 1:
    include auch den ordner des Projektes, wo die ddutil.h drinne ist.

    Tipp 2:
    kopiere ddutil.h in den Ordner von DirektX 8.1 SDK include hinein.

    Hat bei mir beides geklappt!



  • Hallo,

    <p>habe nun unter Extras->Optionen->Verzeichnisse c:\DXSDK\INCLUDE</p>
    <p>und unter Extras->Optionen->Verzeichnisse Bibliotheken c:\DXSDK\LIB</p>
    <p>eingebunden, sowie ddutil.h in den INCLUDE Ordner von DXSDK kopiert</p>

    <p>Klicke ich nun wieder doppelt "demo.dsw" und compiliere, erscheint immernoch folgende Meldung.</P>

    <p>Wähle ich wieder "Alles neu erstellen" so wird nach dem compilieren folgendes gezeigt:</p>

    <p>Demo.cpp
    Linker-Vorgang läuft...
    LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
    Debug/Demo.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.</p>

    <p>Demo.exe - 2 Fehler, 0 Warnung(en)</p>

    <p>Ist ja schon um einige Fehlermeldungen kleiner geworden, wofür ich mich ersteinmal bedanken möchte.</p> 😋

    Zu "Mein Tipp 1:
    include auch den ordner des Projektes, wo die ddutil.h drinne ist."

    <p>Wie include ich den einen Ordner??? 😕 Das Projekt liegt in "c:\Programme\Visual Studio\My Projects\V01"

    <p>Kann sein das es jetzt noch daran liegt? 😕



  • Wie include ich den Ordner!
    Genauso, wie Du die anderen include hast. 🙂
    Kopiere den Ordner von der CD auf Festplatte und include dann diesen Ordner, Wo halt diese Dateien drinne sind. Es spielt doch keine Rolle, ob der Ordner Include heisst. Der compiller würde die dateien auch finden, wenn die Dateien in einen anderen Ordner Namens Weihnachten stehen würden.
    Verstanden?



  • @Barkhan: Wenn _main nicht aufgelöst wurde hast du entweder unabsichtlicherweise eine Konsolenanwendung erstellt statt einer WinAPI-Anwendung oder im Code fehlt doch noch etwas 🙂

    Poste doch mal was du versuchst zu compilieren 😉

    MfG SideWinder



  • SideWinder schrieb:

    @Barkhan: Wenn _main nicht aufgelöst wurde hast du entweder unabsichtlicherweise eine Konsolenanwendung erstellt statt einer WinAPI-Anwendung oder im Code fehlt doch noch etwas 🙂

    Poste doch mal was du versuchst zu compilieren 😉

    MfG SideWinder

    Er hat nicht selbst ein Projekt neu gestartet, sondern er hat ein Projekt aus einem Buch(CD) gestartet. Das Projekt ist aus dem ersten Kapitel sozusagen und baut sich Stück für Stück auf.
    Er hat die .dsw gestartet und dann einfach nur den compiller gestartet.
    Stimmt doch, oder Barkhan ?



  • Normalerweise müsstest du darüber mehr Hilfe um Buch stehen, kann mir kaum vorstellen, dass da nur steht: blabla.dsw starten und compilieren...

    MfG Riddick04



  • Hallo,

    danke nochmal an alle, es funktioniert jetzt. Habe Visual Studio 6 nochmal neu installiert, SDK eingebunden, sowie Projektordner.

    😃 😃


Anmelden zum Antworten