.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
de headers werken in het bestand waar ze staan. dus in headers in je cpp hebben geen invloed op headers in je header. Als je begrijpt wat ik bedoel
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Op dinsdag 21 mei 2002 11:42 schreef DolleDries het volgende:
klopt stdio header moet je ook opnemen in je pruts header
de headers werken in het bestand waar ze staan.
Verder lijkt het alsof je een cyclische afhankelijkheid hebt. Of heb je stiekum #ifndef FILETJE_H, #define FILETJE_H regels in je headerfiles staan die je hebt weggehaald voor 't voorbeeld?
Het is trouwens netter om eigen gemaakte headers met "" (ipv <>) te includen. Ofwel je hebt nu je lokale directory (of de directory waar bert.h in staat) toegevoegd, of je include zonder 't te merken een andere bert.h, wat het probleem wel weer zou verklaren.
EDIT: Ik had niet goed gekeken. Je moet bert.h natuurlijk wel in je header-file includen, als je de definities uit bert.h (en impliciet stdio.h) ook in je header-file wilt gebruiken.
In z'n algemeenheid gelden de overige punten wel natuurlijk.
Uhm... okee, en dan in bert.h en pruts.h zeker #ifndef en #define... Hmm kan idd wel werken. Thanks.Op dinsdag 21 mei 2002 11:57 schreef Soultaker het volgende:
EDIT: Ik had niet goed gekeken. Je moet bert.h natuurlijk wel in je header-file includen, als je de definities uit bert.h (en impliciet stdio.h) ook in je header-file wilt gebruiken.
[/edit]
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Dat is niet waar. Een geinclude header heeft geen lifetime. Je include ze, en ze gelden tot het eind van je sourcefile die je op dat moment aan het compilen bentOp dinsdag 21 mei 2002 11:42 schreef DolleDries het volgende:
klopt stdio header moet je ook opnemen in je pruts header
de headers werken in het bestand waar ze staan. dus in headers in je cpp hebben geen invloed op headers in je header. Als je begrijpt wat ik bedoel
als je dus header1.h include vanuit source.cpp, die vervolgens weer header2.h include, dan zijn de definities uit header2.h ook 'zichtbaar' in source.cpp
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Tja, dat dacht ik eigenlijk ook wel. Maar waarom wil VC dan nie? De bestanden worden wel geinclude, al had ik daar eerst wel problemen mee, maar die foutmeldingen zijn nu weg. De meeste foutmeldingen zitten in de geinclude include headers.Op dinsdag 21 mei 2002 12:47 schreef .oisyn het volgende:
Dat is niet waar. Een geinclude header heeft geen lifetime. Je include ze, en ze gelden tot het eind van je sourcefile die je op dat moment aan het compilen bent
als je dus header1.h include vanuit source.cpp, die vervolgens weer header2.h include, dan zijn de definities uit header2.h ook 'zichtbaar' in source.cpp
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Heb je die error gewoon ge-copy-pasted?
Want er staat File *blahblah:
Staat er misschien een dubbele punt in plaats van een punt-komma ( -> ; ).
Kweet niet zeker
One ring to rule them all, one ring to find them, one ring to bring them all, and in darkness bind them...
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Ja, maar in de header pruts.h wordt FILE gebruikt en die staat in stdio.h . Dus moet stdio.h geinclude worden in pruts.h (of dus bert.h)Op dinsdag 21 mei 2002 15:00 schreef .oisyn het volgende:
hoeft toch niet, pruts.h wordt geinclude vanuit bert.h
Op dinsdag 21 mei 2002 11:38 schreef Xenophage het volgende:
bert.h (hoofd-include)
code:
1 2 3 4 #include <stdio.h> #include "include/predefs.h" #include "include/pruts.h" // class CPruts
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Dit wordt leukOp dinsdag 21 mei 2002 15:04 schreef .oisyn het volgende:
en stdio wordt weer geinclude in bert.h
[..]
pruts.h wordt wel geinclude, maar bij het doorlopen van pruts.h wordt stdio.h niet gevonden, want die is niet geinclude bij deze file.
1
2
3
4
5
6
7
8
9
10
| source.cpp
-> #include "bert.h"
-> #include <stdio.h>
end
-> #include "predefs.h"
end
-> #include "pruts.h
end
end
end |
dus als de compiler in pruts.h is, dan weet hij de definities van stdio.h al
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Ja, je hebt gelijkOp dinsdag 21 mei 2002 15:10 schreef .oisyn het volgende:
kijk:
code:
1 2 3 4 5 6 7 8 9 10source.cpp -> #include "bert.h" -> #include <stdio.h> end -> #include "predefs.h" end -> #include "pruts.h end end end
dus als de compiler in pruts.h is, dan weet hij de definities van stdio.h al(mits hij geinclude is vanuit bert.h, maar dat is ie volgens Xenophage)
Als je #include <bert.h> doet, dan werkt het niet.
Als je #include "bert.h" doet, dan werkt het!
Okee dan. Maar als ik het nou zo doe:Op dinsdag 21 mei 2002 15:14 schreef The End het volgende:
[..]
Ja, je hebt gelijkIk werd er chagerijnig van dus ik heb het getest:
Als je #include <bert.h> doet, dan werkt het niet.
Als je #include "bert.h" doet, dan werkt het!
bert.h:
1
2
3
4
5
6
7
8
9
| #ifndef __INCLUDED_BERT_H #define __INCLUDED_BERT_H #include <stdio.h> #include "predefs.h" #include "pruts.h" #endif // !__INCLUDED_BERT_H |
predefs.h:
1
2
3
| #include <bert.h> // ... |
pruts.h:
1
2
3
| #include <bert.h> // ... |
Dat moet dan toch ook werken?
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Yep. Zo doet ie het zeker.Op woensdag 22 mei 2002 11:08 schreef Xenophage het volgende:
[..]
Dat moet dan toch ook werken?