 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 24.07.2002, 18:27 Titel: Hilfe!!! |
|
|
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 |
|
 |
AFE-GmdG JLI MVP


Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 24.07.2002, 21:19 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 25.07.2002, 17:49 Titel: Nein... |
|
|
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, 17:57, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
AFE-GmdG JLI MVP


Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 25.07.2002, 17:54 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 25.07.2002, 20:01 Titel: Danke |
|
|
Danke nochmal!!!
Cu TheMillenium _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Gast
|
Verfasst am: 27.07.2002, 10:44 Titel: |
|
|
Nicht vergessen: Die Debug Dateien vorher löschen!!!
Die nehmen nämlich meistens ziemlich viel Speicher weg! |
|
Nach oben |
|
 |
|
|
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
|