Hey!
Ik ben al langer bezig uit interesse een 3d engine te schrijven. Na een leuke software renderer in Java ben ik nu bezig met een OpenGL renderer in C++.
Ik heb diverse ebooks en een boek over C++ gelezen. Ook de GoT FAQ heb ik bekeken. Nu zit ik echter nog steeds met een
Probleem / vraag:
Ik snap nog steeds niet hoe je includes moet structureren. Wat is het "algoritme" met die je includes moet schrijven?
Op dit moment doe ik het zo:
In mijn header files include ik andere (eigen / library) headers die ik nodig heb voor de declaraties. In de source file include ik de bijbehorende header (duh) en andere libraries die ik nodig heb voor de definities (zoals string of math).
Een voorbeeld:
In het voorbeeld hierboven heb ik al een probleem:
gl.h maakt gebruik van WINDGIAPI en de declaratie daarvan "krijg" je alleen als je <windows.h> include. Overal dus maar windows.h includen lijkt mij nou echt geen mooie oplossing (maar misschien moet het wel?).
Voor de grap heb ik dat wel even gedaan. Krijg ik ineens 100 compile errors omdat hij "fout" niet kent... rare zooi dus...
De source code en met MS VS project kan je hier downloaden! Models kan ik er helaas niet bijzetten aangezien daar copyright van id software op rust!
(ik gebruik models uit Doom³ om te testen!
)
Ik ben al langer bezig uit interesse een 3d engine te schrijven. Na een leuke software renderer in Java ben ik nu bezig met een OpenGL renderer in C++.
Ik heb diverse ebooks en een boek over C++ gelezen. Ook de GoT FAQ heb ik bekeken. Nu zit ik echter nog steeds met een
Probleem / vraag:
Ik snap nog steeds niet hoe je includes moet structureren. Wat is het "algoritme" met die je includes moet schrijven?
Op dit moment doe ik het zo:
In mijn header files include ik andere (eigen / library) headers die ik nodig heb voor de declaraties. In de source file include ik de bijbehorende header (duh) en andere libraries die ik nodig heb voor de definities (zoals string of math).
Een voorbeeld:
C:
Ik gebruik "include guards" om niet dubbel te includen.1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // modelmaker.h : #include <gl\gl.h> // Header File For The OpenGL32 Library bool loadGLTexture ( char*, GLuint* ); // modelmaker.c : #include <fstream> // for opening files using namespace std; #include "modelmaker.h" // my header bool loadGLTexture ( char* filename, GLuint* texture ) { file = fopen( filename, "r" ); // open file } |
In het voorbeeld hierboven heb ik al een probleem:
gl.h maakt gebruik van WINDGIAPI en de declaratie daarvan "krijg" je alleen als je <windows.h> include. Overal dus maar windows.h includen lijkt mij nou echt geen mooie oplossing (maar misschien moet het wel?).
Voor de grap heb ik dat wel even gedaan. Krijg ik ineens 100 compile errors omdat hij "fout" niet kent... rare zooi dus...
De source code en met MS VS project kan je hier downloaden! Models kan ik er helaas niet bijzetten aangezien daar copyright van id software op rust!
ASCII stupid question, get a stupid ANSI!