Hey proggerds!
Ben sinds een paar dagen bezig mijn 3d engine van Java naar C++ te porten. Moet sneller en ik wil uiteindelijk OpenGL of Direct3d gebruiken.
Maar goed, heb al drie C++ tuts doorgelezen en krijg pointers en structs en zo wel aardig onder de knie.
Nu heb ik echter een probleem met het verspreiden van je progje onder meerdere bestanden:
Je hoort in header files geen includes te zetten. Maar wat moet je dan doen als je in de declaraties types gebruikt die niet toevallig in die header worden gedeclareert? Een voorbeeld:
In core.h wil ik een functie declareren:
Hetzelfde dilemma heb ik in vemath.h, waar ik alle wiskunde functies ingepropt heb:
Heb al gesearched op het net (nergens een tutorial te vinden over hoe je dit doet, alleen over het proggen zelf...) en op GoT maar de meeste TSers hadden stomme fouten gemaakt, dat doe ik niet!
Ik gebruik trouwens de Borland 5.5.1 command line compiler onder WinXP.
De complete source kan je hier downloaden.
//edit:
Oh ja, als we toch bezig zijn...
Ik heb een functie die van een vector een string moet maken:
Het probleem wat ik hier heb is dat als ik spaties in een van die strings zet (dus ", " ipv "-") s dan bij die spatie ophoudt. Enig idee waarom of hoe ik dat kan veranderen?
Ben sinds een paar dagen bezig mijn 3d engine van Java naar C++ te porten. Moet sneller en ik wil uiteindelijk OpenGL of Direct3d gebruiken.
Maar goed, heb al drie C++ tuts doorgelezen en krijg pointers en structs en zo wel aardig onder de knie.
Nu heb ik echter een probleem met het verspreiden van je progje onder meerdere bestanden:
Je hoort in header files geen includes te zetten. Maar wat moet je dan doen als je in de declaraties types gebruikt die niet toevallig in die header worden gedeclareert? Een voorbeeld:
In core.h wil ik een functie declareren:
C:
Natuurlijk gaat de compiler zeuren omdat hij string niet kent. Die include ik ook in de bijbehorende cpp file.1
2
3
4
5
| struct v_3d { float x, y, z; }; void vec2string( v_3d, string ); |
Hetzelfde dilemma heb ik in vemath.h, waar ik alle wiskunde functies ingepropt heb:
C:
Hier moet hij weten wat v_3d voorstelt. Dus hebik gewoon maar core.h geinclude. Maar volgens mij hoort die include daar dus niet te staan. Maar wat moet je dan?1
2
| #include "core.h" float calcLength ( v_3d ); |
Heb al gesearched op het net (nergens een tutorial te vinden over hoe je dit doet, alleen over het proggen zelf...) en op GoT maar de meeste TSers hadden stomme fouten gemaakt, dat doe ik niet!
De complete source kan je hier downloaden.
//edit:
Oh ja, als we toch bezig zijn...
Ik heb een functie die van een vector een string moet maken:
C:
Uiteindelijk moet de string dus meegestuurd worden maar dat werkt dus nog niet...1
2
3
4
5
6
7
| void vec2string( v_3d u ) { string s; stringstream ss; ss << "{" << u.x << "-" << u.y << "-" << u.z << "}"; ss >> s; cout << "DUDE! " << s << endl;; } |
Het probleem wat ik hier heb is dat als ik spaties in een van die strings zet (dus ", " ipv "-") s dan bij die spatie ophoudt. Enig idee waarom of hoe ik dat kan veranderen?
[ Voor 17% gewijzigd door JayVee op 27-09-2003 16:05 ]
ASCII stupid question, get a stupid ANSI!