Richtig includen
-
Ich verzweifle hier langsam...
Und zwar:
Ich hab folgende dateien:
main.cpp // WinMain
OpenGLInit.h // Prototypen der OpenGLInit.cpp
OpenGLInit.cpp // FunktionenOpenGLObjects.h // Class-Struktur
OpenGLObjects.cpp // Methodenheaderfiles.h
/* +==============================================================================+ */ /* | INCLUDES | */ /* +==============================================================================+ */ #include <map> using namespace std; #include <windows.h> // Header File For Windows #include <gl\gl.h> // Header File For The OpenGL32 Library #include <gl\glu.h> // Header File For The GLu32 Library #include <gl\glaux.h> // Header File For The GLaux Library #include "OpenGLInit.h" #include "OpenGLObjects.h"
wie muss ich die etz einbinden das sich alle gegenseitig kennen
Hier is die Datei, mit den VC++ 2003 Project
http://root.pixelmurder.de/OpenGL.rar
... brauche dringend eure hilfe
MFG
Schinken
-
1.) Verwende Forward-Deklarationen, statt includes (in Headern) wo immer möglich.
2.) Verwende (IMMER) Include-Guards.
3.) Wenn 1. + 2. nicht helfen überdenke dein Design.
-
und stell dir vor ich weis net was du meinst O_o
-
Kann ja nicht wissen das du absoluter Anfänger bist, und dir Begriffe wie
Include-Guard oder Forward-Deklaration noch nichts sagen.Was verstehst du denn nicht ??
-
hab davon noch nie was gehört
-
-
Ok, danke werde mir das mal durchlesen O_o
-
hm ja gut hab mir das etz durchgelesen... das macht schon sinn... aber ... weis trotzdem immernoch net wie ich ds includen muss das wirklich alles sich gegenseitig kennt O_o
-
also da wirds du wohl auf probleme haben, das
sich alles GEGENSEITIG kennt. für was sollte z.b. deine
<map> die OpenGLObjects.h kennen? hmmm komm hilf mir auf die sprünge
und jetzt BITTE poste mal die fehlermeldungen!
liegt der da auch im selben ordner wenn du schon so includierst?
#include "OpenGLInit.h"sicher da drinnen?
ist die bibliothek deinem projekt bekannt?
#include <gl\glaux.h>
-
momentan hab ich gar nix mehr includet
aber die datein liegen im gleichen ordner...
bin langsam nämlich am durchdrehen
-
Schinken schrieb:
momentan hab ich gar nix mehr includet
aber die datein liegen im gleichen ordner...
bin langsam nämlich am durchdrehenLass dich nicht kleinmachen und poste hier mal die
Compilermeldungen. Vermutlich sind die meisten hier wie
auch ich zu faul zum oraklen was schief gehen könnte.
-
Hm naja die COmpiler meldungen sind einfach, das er variablen wo net kennt...
Mehr isses net... und zwar die variablen aus der OpenGLInit.cpp
-
Schinken schrieb:
Hm naja die COmpiler meldungen sind einfach, das er variablen wo net kennt...
Mehr isses net... und zwar die variablen aus der OpenGLInit.cpp
Handelt es sich um einen Linkerfehler? OpenGLInit.cpp zum Projekt
hinzugefügt?Ansonsten schiebe OpenGLInit.h solange hoch bis es geht.
Die Methode funktioniert ausser bei Ringincludes immer ;-)).
-
Was sind Ringincludes? ^^
-
wenn du zwei Header zyklisch ineinander includest - sowas solltest du sowieso vermeiden.
-
Naja, dass ist aber fast normal und muss auch nicht unbedingt vermieden werden (deshlab gibt es ja "#pragma once").
Was Du meinst sind aber wohl "circular references"...
-
oder, wer #pragma once nicht mag (ist IMO doch VS speziefisch) einen normalen include guard.
@Jochen Kalmbach
bis du der Jochen Kalmbach, von dem ich auch ein paar Artikel bei codeproject gelesen habe?
-
TheBigW schrieb:
bis du der Jochen Kalmbach, von dem ich auch ein paar Artikel bei codeproject gelesen habe?
Dort hab ich eigentlich nur drei...
http://www.codeproject.com/tools/leakfinder.asp
http://www.codeproject.com/threads/StackWalker.asp
http://www.codeproject.com/tools/BootExtract.asp
-
es funktioniert .D
kumpel hats mir erklärt... brauch ich in jeder datei diese include guards?
-
Schinken schrieb:
ich in jeder datei diese include guards?
Du solltest Sie in jeder h/hpp-Datei haben...
-
aha dann in cpp net