JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=84865b135926a94a1af5c27f1173e529Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Fehlermeldung beim Übersetzen der Programme des Kapitels 17
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Fossil
Mini JLI'ler


Alter: 89
Anmeldedatum: 07.03.2006
Beiträge: 11
Wohnort: Tübingen
Medaillen: Keine

BeitragVerfasst am: 08.04.2008, 12:25    Titel: Fehlermeldung beim Übersetzen der Programme des Kapitels 17 Antworten mit Zitat

Hallo jli-Gemeinde!

Nach zwei Jahren frische ich meine Kenntnisse in jli-Spielprogrammierung wieder auf. Vor zwei Wochen habe jedoch leider ich einen totalen Festplatten-Crah gehabt und fast alles verloren, was im Bereich Programme lag. Die Buch-CD habe ich wieder installiert, aber die Programme ab ca. Kapitel 17 laufen nicht mehr. Das muß irgendetwas mit DirectDraw zu tun haben

Ich erinnere mich, daß ich früher dasselbe Problem hatte und ein zusätzliches Programm installieren mußte, weiß aber nicht mehr wie es heißt und wo ich es finde - natürlich habe ich das nicht aufgeschrieben. Ist auch schon zwei Jahre her.

Beispiel: Gameloop_QPC.cpp macht beim Kompilieren 3 Fehler in Zeile 47:
- error C 2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'lpDD7'
- error 2501: LPDIRECTDRAW7 Fehlende Speicherklasse oder Typenbezeichnung
- fatal error C1004: Unerwartetes Dateiende. Crying or Very sad


Wer kann mir helfen? Question

Dank Euch
Fossil
_________________
Weissjurabeta
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 08.04.2008, 13:19    Titel: Antworten mit Zitat

Du hast ein ; irgendwo vergessen. Und ohne Quelcode kann man fast gar nix sagen.
Also formuliere deine Fragen in Zukunft deutlicher und liefer mehr Informationen mit, dann kann dir schneller geholfen werden.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fossil
Mini JLI'ler


Alter: 89
Anmeldedatum: 07.03.2006
Beiträge: 11
Wohnort: Tübingen
Medaillen: Keine

BeitragVerfasst am: 08.04.2008, 16:38    Titel: Fehlermeldung beim Übersetzen der Programme des Kapitels 17 Antworten mit Zitat

Hallo Jonathan Klein,

Vielen Dank für Deine Nachricht. Very Happy Deine Diagnose kann aber nicht zur Therapie führen, da ich gar kein eigenes Programm geschrieben habe, sondern das Programm, das direkt von der Buch-CD übernommen ist, compilieren wollte.

Gruß Fossil
_________________
Weissjurabeta
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 08.04.2008, 17:08    Titel: Antworten mit Zitat

Ich habe die CD leider nicht mehr zur Hand.
Poste mal die Zeilen mit den Fehler, mit 5 Zeilen davor und 5 dahinter oder so.
Das mit dem fehlenden ; hört sich nämlich nicht so an, als wären deine Einstellungen falsch. Evtl. hast du ja auch nur aus versehen ein Zeichen gelöscht?
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Chriss
Senior JLI'ler



Anmeldedatum: 18.08.2004
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 08.04.2008, 19:07    Titel: Antworten mit Zitat

Welches DX SDK benutzt du? Die Version von der CD oder die Aktuelle von der MS Homepage?

Wenn du eine neuere Version, als die vom Buch, benutzt kann es nicht gehen weil sich manche Funktionen geändert haben ( Änderung bei den Übergabeparametern ).

Solltest du das SDK der Buch CD benutzen wäre es, wie Jonathan_Klein bereits sagte, am besten du schreibst die Fehlermeldungen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fossil
Mini JLI'ler


Alter: 89
Anmeldedatum: 07.03.2006
Beiträge: 11
Wohnort: Tübingen
Medaillen: Keine

BeitragVerfasst am: 10.04.2008, 14:22    Titel: Fehler beim übersetzen der Programme des Kapitels 17 Antworten mit Zitat

Hallo Chris und Jonathan_Klein

Das Problem hat sich nicht lösen lassen.

Hier einige Programmzeilen vor der Fehlermeldung (Kapitel 17). Danach kommt direkt WINDOWS MAIN


CPP:
//Callback Funktion zur Nachrichtenbehandlung
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

// DirectDraw-Objekte initialisieren
BOOL InitDirectDraw(HWND hWnd);

// Objekte/Speicher freigeben
void CleanUpDirectDraw(void);

// Ausgabefunktion
void Render(void);

// Fehlermeldung erzeugen
BOOL  Error(char* msg);

// Das Fensterhandle
HWND hWnd = 0;

// Zeiger auf das DirectDraw Interface
LPDIRECTDRAW7        lpDD7           = NULL;
LPDIRECTDRAWSURFACE7 lpDDSPrimary    = NULL;



Die Fehlerangaben in Kapitel 17 sind:


DDGDI.CPP

D:\Daten\JLI Beispiele\Kapitel_17\DDGDI\DDGDI.CPP(44) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'lpDD7'

D:\Daten\JLI Beispiele\Kapitel_17\DDGDI\DDGDI.CPP(44) : error C2501: 'LPDIRECTDRAW7' : Fehlende Speicherklasse oder Typbezeichner

D:\Daten\JLI Beispiele\Kapitel_17\DDGDI\DDGDI.CPP(44) : fatal error C1004: Unerwartetes Dateiende gefunden

Fehler beim Ausführen von cl.exe.



Auch bei folgenden Programmen gibt es Fehler, z.B. in Kapitel 20:

ManagerMain.cpp

d:\daten\jli beispiele\kapitel_20\directinputclass\inputmanager.h(36) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'lpDI'

d:\daten\jli beispiele\kapitel_20\directinputclass\inputmanager.h(36) : error C2501: 'LPDIRECTINPUT8' : Fehlende Speicherklasse oder Typbezeichner

d:\daten\jli beispiele\kapitel_20\directinputclass\inputmanager.h(36) : error C2501: 'lpDI' : Fehlende Speicherklasse oder Typbezeichner

d:\daten\jli beispiele\kapitel_20\directinputclass\inputmanager.h(39) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'lpDIDevice'

d:\daten\jli beispiele\kapitel_20\directinputclass\inputmanager.h(39) : error C2501: 'LPDIRECTINPUTDEVICE8' : Fehlende Speicherklasse oder Typbezeichner

d:\daten\jli beispiele\kapitel_20\directinputclass\inputmanager.h(39) : error C2501: 'lpDIDevice' : Fehlende Speicherklasse oder Typbezeichner

d:\daten\jli beispiele\kapitel_20\directinputclass\global.h(12) : error C2065: 'LPDIRECTDRAWSURFACE7' : nichtdeklarierter Bezeichner

d:\daten\jli beispiele\kapitel_20\directinputclass\global.h(12) : error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'lpDDSurface'

d:\daten\jli beispiele\kapitel_20\directinputclass\global.h(12) : error C2182: 'DeterminePixelFormat' : Ungueltige Verwendung des Typs 'void'

d:\daten\jli beispiele\kapitel_20\directinputclass\global.h(12) : error C2059: Syntaxfehler : ')'

Fehler beim Ausführen von cl.exe.

ManagerMain.obj - 10 Fehler, 0 Warnung(en)

Offensichtlich hat das mit Bezeichnern LP... zu tun.

Die CD, die ich benutze, ist schon etwas alt , sie ist aus einem jli-Buch mit Copyright 2001.

Was kann da schief sein?http://www.jliforum.de/board/images/smiles/icon_cry.gif
Crying or Very sad

Vielen Dank für Eure Mühe
Fossil
_________________
Weissjurabeta
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 10.04.2008, 14:39    Titel: Antworten mit Zitat

Hast du in deiner IDE die Pfade wie beschrieben eingestellt?
Es sieht ganz so aus, als seien hier die verwendeten DirectX-Klassen unbekannt. Schau mal in dem Kapitel, in dem DirectX zum ersten Mal angesprochen wird, da steht wie die Pfade auszusehen haben.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fossil
Mini JLI'ler


Alter: 89
Anmeldedatum: 07.03.2006
Beiträge: 11
Wohnort: Tübingen
Medaillen: Keine

BeitragVerfasst am: 12.04.2008, 10:01    Titel: Fehlermeldung beim Übersetzen der Programme des Kapitels 17 Antworten mit Zitat

An alle:

In der Verzweiflung schmeißt man alles 'runter. So habe ich alles deinstalliert und dann neu installiert. Die Programme ab Kapitel 17 laufen dennoch auch direkt nach der Installation nicht. Dann habe ich nochmals alles deinstalliert und ein Visual C++ 6 aus einem anderen Buch installiert, DxSdk8a und die Beispiele installiert, und wieder geht nichts. Ich bin in der Zwischenzeit der Meinung, daß die Autorenversion, die man mit den jli-Büchern von Markt&Technik bekommt, irgend ein Element nicht enthält, das man braucht, wenn man Windows-Spielprogramme mit DirectDraw laufen lassen will.

Wer kann mir dazu was sagen?

Thanks to the Lord of Programing for his remarks, I will keep them in Mind.

Euer Fossil
_________________
Weissjurabeta
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 12.04.2008, 10:44    Titel: Antworten mit Zitat

Hallo Fossil,

ich kann mir nicht vorstellen, dass es an der Visual C++ Autorenedition liegt. Damit hätten sonst sehr viel mehr Leute Probleme gehabt.

Anhand der Fehlermeldungen würde ich auch sagen, dass die Header nicht gefunden werden. Hast du die Pfade denn in Visual C++ 6 angegeben?

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 12.04.2008, 11:31    Titel: Antworten mit Zitat

Ein weiteres Problem, was du vielleicht danach haben wirst (wenn du das neue SDK benutzt) ist eine Fehlermeldung bei DrawText.

Anstatt 5 Parametern werden jetzt 6 gebraucht. Siehe DrawText bei MSDN.

Also das hier
CPP:
m_lpD3DFont->DrawText(Text, -1, &r, DT_CALCRECT, TextColor);


durch das hier ersetzen
CPP:
m_lpD3DFont->DrawText(m_lpD3DSprite, Text, -1, &r,DT_CALCRECT, TextColor);


Außerdem muss vorher ein Sprite-Objekt erstellt werden (m_lpD3DSprite).
Also diese am besten passend irgendwo als globale Variable hinzufügen oder in der Klasse. In diesem Beispiel wäre das in Direct3D.h so.
CPP:
        // Direct3D Variablen
        LPDIRECT3D9       m_lpD3D;
        LPDIRECT3DDEVICE9 m_lpD3DDevice;
        LPD3DXFONT        m_lpD3DFont;
        LPD3DXSPRITE      m_lpD3DSprite;


Und dann an passender Stelle initialisieren.
CPP:
D3DXCreateSprite(m_lpD3DDevice, &m_lpD3DSprite);

In diesem Fall in BOOL CDirect3D::Init(HWND hWnd, BOOL bWindowed) nachdem das Device angelegt wurde.

P.s Eine Sache hat sich noch geändert bei D3DXCreateFontIndirect.
Und zwar wird statt LOGFONT, D3DXFONT_DESC benutzt. http://msdn2.microsoft.com/en-us/library/bb172843(VS.85).aspx
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fossil
Mini JLI'ler


Alter: 89
Anmeldedatum: 07.03.2006
Beiträge: 11
Wohnort: Tübingen
Medaillen: Keine

BeitragVerfasst am: 16.04.2008, 08:09    Titel: Fehlermeldung beim Übersetzen der Programme des Kapitels 17 Antworten mit Zitat

Lieber Christian Rouselle,

Kann es sein, dass mein Problem daher kommt, dass ich zwei Versionen von DirectX auf meinem Computer habe, eine im Windows XP (Version 9.0 c) und eine von der Buch CD (Version Cool?

Die Beispiel-Programme laufen nämlich, wenn ich sie z.B. von C:\Programme\JLIBeispiele\Kapitel_19\TestSprite\TestSprite (.exe) durch Doppelklick starte.

Die Beispiel-Programme laufen nicht, wenn ich sie von einer Verknüpfung, die ich von C++ (über Start - Programme-Microsoft Visula 6.0 - Microsoft Visual 6.0) angelegt habe, kompilieren, linken und starten will.

Wenn das die Lösung sein sollte, wie bekomme ich dann eine Verknüpfung von DirectX 8 auf den Desktop?

Vielen Dank fürs Nachdenken
Dein Fossil
_________________
Weissjurabeta
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 16.04.2008, 13:03    Titel: Antworten mit Zitat

Wenn du die Beispiele aus der IDE heraus startest, könntest du ein anderes Startverzeichnis eingestellt haben, womit die Programme sämtliche Dateien nicht finden können.
Überprüfe in deiner IDE in welchem Verzeichnis du die Anwendungen nach dem Kompilieren startest.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 16.04.2008, 21:31    Titel: Re: Fehlermeldung beim Übersetzen der Programme des Kapitels Antworten mit Zitat

Fossil hat Folgendes geschrieben:
Die Beispiel-Programme laufen nicht, wenn ich sie von einer Verknüpfung, die ich von C++ (über Start - Programme-Microsoft Visula 6.0 - Microsoft Visual 6.0) angelegt habe, kompilieren, linken und starten will.

Was meinst du hiermit? Eine Verknüpfung fürs kompilieren, linken und starten? Sowas kenne ich nicht und weiß nicht wie das funktionieren soll.

Wie Christian schon sagte deuten deine Fehlermeldungen auf fehlende Headerinformationen hin. Versichere dich, dass du in den Optionen der Entwicklungsumgebung(Visual C++) die Pfade zu den DirectX Headern gesetzt hast (sollten ganz oben in der entsprechenden Liste stehen). Ist aber auch nochmal im Buch beschrieben denke ich...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fossil
Mini JLI'ler


Alter: 89
Anmeldedatum: 07.03.2006
Beiträge: 11
Wohnort: Tübingen
Medaillen: Keine

BeitragVerfasst am: 17.04.2008, 07:01    Titel: Antworten mit Zitat

Hallo KI,

mit Verknüpfung meinte ich, daß ich eine Verknüpfung zu C++ auf den Desktop gelegt habe dadurch, daß ich über Start - Programme - Microsoft Visual C++ 6.0 das Icon auf den Desktop gezogen habe, um das C++ Programm aufzurufen und dann dort zu programmieren. Das geht auch. Wenn ich dann (als Beispiel) Kapitel 19 aufrufe und kompilieren will, dann - Streik!

Das Buch von Christian Rouselle, das ich habe, hat ein Copyright von 2001. Ich werde nochmals danach suchen, wo man Pfade einstellen kann. Ich dachte, es genüge, zu einfach installieren, an den vorgeschlagenen Pfaden nichts zu ändern und die Beispiele laufen zu lassen.

Eure Diagnose, daß das Problem mit den Headern zu tun hat, ist sicherlich richtig. Ich bekomme z.B. bei Kapitel 19 First Sprite eine Fehlermeldung in der <global.h> Compilierung
C:\Programme\JLI Beispiele\Kapitel_19\FirstSprite\global.h kann nicht kompiliert werden; die Dateierweiterung ist keinem Kompilierungstool zugeordnet.
Was aber tun?

Veilleicht bin ich manchmal blöd, im Spiegel sehe ich so Crying or Very sad aus.

Gruß Fossil
_________________
Weissjurabeta
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 17.04.2008, 10:49    Titel: Antworten mit Zitat

Ein paar Sachen sind mir noch unklar. Welches Buch hast du genau (es gibt verschiedene Auflagen mit leicht abgeänderten Namen und anderem Inhalt: Entwicklungsumgebung...)

Ich habe hier nur "jetzt lerne ich - DirectX9 und Visual C++". Du hast von DirectX 8 gesprochen. Also hast du vermutlich den Vorgänger?

In dem Buch was ich hier habe gibt es am Anfang von Kapitel 17 einen Abschnitt "Installation von DirectX", wo auch genau erklärt wird wo man die Pfade zu den DirectX-Headern und Libraries setzen muss.
(Neuere DirectX-SDKs machen das automatisch, aber neuere SDKs unterstützen kein Visual C++ 6.0 mehr soweit ich weiß...)


Wie auch immer: Die Pfade sollten dort zu finden sein:
Starte Visual C++
Gehe ins Menü auf Extras->Optionen
Im folgenden Fenster dann auf das Register Verzeichnisse klicken
Uns interessieren "Verzeichnisse anzeigen für" "Include-Dateien"

So. Da müsste jetzt was von DirectX stehen? Ist das so? Nicht aufgeben... Smile ansonsten müssen wir uns was anderes überlegen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum