Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 02.04.2004, 21:03 Titel: header dateien includieren |
|
|
Hallo
ich habe mal eine blöde frage aber bei mir kommt immer beim includieren
die fehlermeldung der heap ist 632 groß oder so ähnlich.
Also ich habe merere header Dateien die untereinnander abhängig sind wie macht ihr das mit den header Dateien das mann da nicht mal zufällig eine Doppelt includiert.
Danke |
|
Nach oben |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 02.04.2004, 21:16 Titel: |
|
|
du kannst oben in die header-datei schreiben:
#pragma once |
|
Nach oben |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 02.04.2004, 21:24 Titel: |
|
|
KI hat Folgendes geschrieben: | #pragma once | Das verhindert megrfachens Inkludieren des Headers.
Es gibt aber noch eine andere Möglichkeit, weil "#pragma once" nicht mit jedem Compiler funktioniert. Es ist demnach nicht portabel.
Die andere Möglichkeit geht so:
Code: |
#ifndef HEADER_NAME_H
#define HEADER_NAME_H
// [...] Inhalt der Header-Datei
#endif
| Wobei HEADER_NAME_H für jede Header-Datei verschieden sein muss. Is ja logisch.
Es steht quasi für ine ID. Es könnte genauso gut lauten: LECK_MICH, oder so. |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 03.04.2004, 10:55 Titel: |
|
|
geht #pragma once auf dem Vc++6??? gehts auch auf dem VS.NET2004???? würd mich mal interessieren... |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 03.04.2004, 15:13 Titel: |
|
|
Bei VC++ auf jeden Fall.
Ich benutze eigentlich nur #pragma once _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 03.04.2004, 15:43 Titel: |
|
|
Bei 2002/2003 .NET geht es auch. Eine Beta von 2004 habe ich nicht |
|
Nach oben |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 07.04.2004, 16:52 Titel: |
|
|
hallo ich habe es jetzt mal so gelöst das es beim kompielieren 0 Fehler bekomme aber dann beim Ausführen kommen dann folgende Fehlermeldung
c:\c++files\objektprojekt\menue.h(9) : error C2504: 'OBJECT' : Basisklasse undefiniert
c:\c++files\objektprojekt\menue.h(17) : error C2061: Syntaxfehler : Bezeichner 'MSG'
c:\c++files\objektprojekt\menue.h(23) : error C2143: Syntaxfehler : Fehlendes ';' vor '*'
c:\c++files\objektprojekt\menue.h(23) : error C2501: 'MSG' : Fehlende Speicherklasse oder Typbezeichner
c:\c++files\objektprojekt\menue.h(23) : error C2501: 'm_pMsg' : Fehlende Speicherklasse oder Typbezeichner
c:\c++files\objektprojekt\menue.h(24) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_kollision'
c:\c++files\objektprojekt\menue.h(24) : error C2501: 'KOLLISION' : Fehlende Speicherklasse oder Typbezeichner
c:\c++files\objektprojekt\menue.h(24) : error C2501: 'm_kollision' : Fehlende Speicherklasse oder Typbezeichner
c:\c++files\objektprojekt\menue.cpp(1 : error C2065: 'FALSE' : nichtdeklarierter Bezeichner
c:\c++files\objektprojekt\menue.cpp(1 : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
c:\c++files\objektprojekt\menue.cpp(23) : error C2065: 'm_lpD3DDevice' : nichtdeklarierter Bezeichner
c:\c++files\objektprojekt\menue.cpp(23) : error C2227: Der linke Teil von '->Release' muss auf Klasse/Struktur/Union zeigen
c:\c++files\objektprojekt\menue.cpp(26) : error C2065: 'MSG' : nichtdeklarierter Bezeichner
c:\c++files\objektprojekt\menue.cpp(26) : error C2065: 'msg' : nichtdeklarierter Bezeichner
c:\c++files\objektprojekt\menue.cpp(27) : error C2448: '<unbekannt>' : Funktionsstil-Initialisierung scheint eine Funktionsdefinition zu sein
Fehler beim Ausführen von cl.exe.
Was kann da falsch gelaufen sein |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 07.04.2004, 18:30 Titel: |
|
|
Du hast wohl irgendwei vergessen ein paar Headerdateien einzubinden. Oder ein paar *.libs
Was hast du denn alles includiert?
Du könntest (wenn er nicht zu lang ist) mal den kompletten Quelltext posten. (Aus wie vielen Dateien besteht der eigentlich? nur eine, oder hast du ihn in mehrere aufgeteilt?)
[edit]Das mit den 0 fehler beim kompilieren kann ja gar nicht sein. Du postest ja Kompileirfehler. und beim ausführen kommen solche Fhelermeldungen nicht.[/edit] _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 08.04.2004, 09:27 Titel: |
|
|
Hallo ich glaube ich habe denn fehler gefunden
Aber um in zu lösen brauche ich die Froward Deklaration.
Da ich mit dieser noch nie was gemacht und gehört habe kann mir vieleicht einer diese art näher erklären im Buch steht über dieser art nichts so weit ich weiß. |
|
Nach oben |
|
|
HotAcid Super JLI'ler
Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 08.04.2004, 10:36 Titel: |
|
|
Ich mach jetzt einfach mal nen Versuch, keine Ahnung, obs stimmt... habe meine Bücher gerade nicht in Reichweite:
du hast zwei Klassen A und B und den Dateien A.h und B.h
A.h:
Code: |
class B;
class A
{
B* pB;
}; |
B.h:
Code: | #include A.h
class B
{
A* pA;
}; |
cu Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
|