BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C++ globale variablen definieren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen globale variablen definieren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
testosteron
Neuling

Dabei seit: 31.01.2003
Beiträge: 1

traurig globale variablen definieren       Zum Anfang der Seite springen

Hallo zusammen...
Kenn mich eigentlich nur mit vb und delphi ganz gut aus, bin gerade dabei eine 3D Engine zu programmieren, ist in vb halt zu langsam, also will ich es in c++ machen!

Wie definier ich eine Variable in, die ich in mehreren .cpp Dateien benutzen kann???

Ich bin zu blöd den shit selber hinzubekommen!

Ich habe ein zentrale Datei "OpenGl_Variables.h" da soll eine Variable für eine Textur definiert sein. Besser gesagt ist es ein Array!

Das sieht folgendermaßen aus:
code:
extern GLuint skytexture[3];



Dann hab ich zwei .cpp Dateien:
"OpenGl_Drawfunc.cpp"
"OpenGl_Textures.cpp"

Beide sind mit der o.g. Header folgendermaßen verlinkt:
code:
#include "headers\opengl_variables.h"




"OpenGl_Textures.cpp"
Hier soll er in einer Funktion: "LoadGL_SKYTextures()"
die drei nötigen Texturen erstellen mit:
code:
glGenTextures(3, &skytexture[0]);


und zwar angefangen an der ersten Arrayposition!


"OpenGl_DrawFunc.cpp"
Hier wählt er die entsprechde Textur für das zeichnen der Quads aus:
code:
glBindTexture(GL_TEXTURE_2D, skytexture[0]);




Wenn ich nun den shit compiliere, sagt er folgende Fehlermeldung:

Linker-Vorgang läuft...
OpenGl_DrawFunc.obj : error LNK2001: Nichtaufgeloestes externes Symbol "unsigned int * skytexture" (?skytexture@@3PAIA)
OpenGl_Textures.obj : error LNK2001: Nichtaufgeloestes externes Symbol "unsigned int * skytexture" (?skytexture@@3PAIA)
Debug/BaseWindow.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

Weis jemand wie ich den shit hinbekomme...
thx für Hilfe
31.01.2003 15:35 testosteron ist offline E-Mail an testosteron senden Beiträge von testosteron suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Hmm, hab ich das jetzt richtig verstanden? Du möchtest von mehreren Dateien auf diese Deklaration:

extern GLuint skytexture[3];

in der Datei OpenGL_Variables.h zugreifen?
Hat das einen bestimmten Grund, warum Du sie denn als "extern" deklarierst?

Binde in der OpenGL_Variablen.h die entsprechenden OpenGL-Header ein, damit der Typ GLuint bekannt ist. (sinnvollerweise vor der Deklaration der Variable *g*). Dann brauchst Du nur noch von jeder Datei, von der Du die Variable nutzen willst die OpenGL.h einzubinden.

Wenn der Compiler wegen Mehrfachdefinitionen mecket, kannst Du das beispielsweise mit folgenden Konstrukt abstellen:

#ifndef OPENGL_INCLUDED
#define OPENGL_INCLUDED

<Hier Definitionen und Includes einfügen>

#endif

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Compuholic: 31.01.2003 16:40.

31.01.2003 16:07 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C++ globale variablen definieren

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH