JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Hilfe!!!

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 24.07.2002, 19:27    Titel: Hilfe!!! Antworten mit Zitat

Wie kann ich mein Programm in Module aufteilen???

Wie es im Buch steht...klappt es bei mir nicht...

...ich teile meine Funktionen in cpp Dateien auf & sehe auch alle unter Quellcodedateien...

Nur er meckert dann, dass er auf bestimmte Variablen die in einer anderen cpp sind nicht zugreifen kann...

...es funktioniert auch nicht, wenn ich die Sprite.h & Sprite.cpp aus dem Buch einbinde...ich habe alles korrekt gesetzt....und die Spriteklasse nicht einmal benutzt ...nur eingebunden...und dauert Fehlermeldungen...wie kein ; vor der und der Funktion...obwohl wenn alles in ner cpp ist, läuft wie geschmiert...

Cu TheMillenium
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 24.07.2002, 22:19    Titel: Antworten mit Zitat

Die besagte Fehlermeldung kann auch Auftreten, wenn in der Headerdatei ein Semikoleon Fehlt, dieses Fehlen aber erst in der C++-Datei entdeckt wird, in der Regel direkt nach dem Include.

Ein Projekt in mehrere Dateien aufzuteilen ist nicht weiter schwer. Man muß nur Beachten, wo welche Daten gebraucht werden, welche Includes von wem erneut includiert werden...

Headerdateien werden deshalb in der Regel in ein #ifndef-Konstrukt gekapselt, die verhindert, das eine Rekursive Struktur entsteht.

Beispiele dafür findet man in jeder Headerdatei der Windows-API, von DirectX, von fast beliebigen Projekten mit Mehreren Dateien aus dem Internet.

Ich zeige hier nur mal kurz, wie es funktioniert:

Datei: bla.h
Code:

#ifndef _BLA_H
#define _BLA_H

#include <stdio.h> // Systemincludes
#include <...>

#include "bla1.h" // weitere Programmincludes
#include "..."

#define abc 1 // Diverse defines

typedef struct {
...
} TType; // Diverse Typendefinitionen

int tmp1; // Diverse Variablendefinitionen

int funktion(void); // Prototypen von bla.cpp
...

#endif // _BLA_H


Eine durchdachte Aufteilung in passende und logische Programmteile ist dann noch wichtig, alles weitere funktioniert dann von ganz alleine.

Beachte:
Jede cpp-Datei muss für sich alleine compiliert werden können, d.h. alle von Ihr benötigten Includes sollten im Header der cpp-Datei eingetragen werden. Variablen dürfen im Header nie initialisiert werden, da es sonst probleme beim Linken gibt.

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 25.07.2002, 18:49    Titel: Nein... Antworten mit Zitat

Klappt bei mir leider nicht...

Kann mir einer das machen, wenn ich ihm die 2 cpp's und die 2 h's gebe???


Ich habe : Sprite.cpp Main.cpp
Sprite.h screenconfig.h

In beiden cpp's binde ich die Sprite.h ein.
Der Compiler beschwerd sich aber, dass er auf kein Objekt aus der Main.cpp zugreifen kann. Die Sprite Daten sind die aus dem Buch (unverändert). Aber ich muss ja lpDDSurface, lpDDPrimary, usw. in der Main.cpp deklarieren...



Cu TheMillenium
_________________
The source of all power is in its destiny...


Zuletzt bearbeitet von TheMillenium am 25.07.2002, 18:57, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 25.07.2002, 18:54    Titel: Antworten mit Zitat

Immer her damit.

(alles in eine Zip packen, vorher bitte noch auf Vieren testen... und ab nach afe-gmdg@gmx.de)
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 25.07.2002, 21:01    Titel: Danke Antworten mit Zitat

Danke nochmal!!! Smile


Cu TheMillenium
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Gast









BeitragVerfasst am: 27.07.2002, 11:44    Titel: Antworten mit Zitat

Nicht vergessen: Die Debug Dateien vorher löschen!!!
Die nehmen nämlich meistens ziemlich viel Speicher weg!
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
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