#1 11. November 2010 Externe Variable benutzen Ich habe eine variable global definiert vor der main schleife... in der main wird diese aufgerufen bzw. benutzt. wenn ich aber eine extra header datei einbinde und dort diese variable benutzen möchte geht das nicht. warum? + Multi-Zitat Zitieren
#2 11. November 2010 AW: Funktion in extra datei...problem Dafür gibts den modifier extern. Beispiel: main.cpp Code: const double pi = 3.14; test.cpp Code: extern const double pi; So sollte das funktionieren. Kann es leider nicht testen, da ich atm keine C++ Umgebung hier habe. greez + Multi-Zitat Zitieren
#3 11. November 2010 AW: Externe Variable benutzen hier mal der code mit der problembeschreibung Code: #include "stdafx.h" #include "test.h" #include <xors3d.h> #include <iostream> #include "defs.h" #include "movement.h" int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { xGraphics3D(1366, 768, 32, false, true); xHidePointer(); int camera = xCreateCamera(); xPositionEntity(camera, 70, 60, 80); int light = xCreateLight(); xPositionEntity(light, 50, 60, 60); xRotateEntity(light, 45, 45, 45); int terrain = xLoadMesh("media/terrain.b3d"); xPositionEntity(terrain, 0, 0, 0); int hud_left = xLoadImage("media/hud-left.png"); while(!xKeyDown(KEY_ESCAPE)) { if(xKeyDown(KEY_W)) xMoveEntity(camera, 0, 0, 1); if(xKeyDown(KEY_S)) xMoveEntity(camera, 0, 0, -1); if(xKeyDown(KEY_A)) xMoveEntity(camera, -1, 0, 0); if(xKeyDown(KEY_D)) xMoveEntity(camera, 1, 0, 0); xRenderWorld(); xDrawImage(hud_left, -25, 575); xFlip(); } return 0; } funktioniert aber ich will den block... Code: if(xKeyDown(KEY_W)) xMoveEntity(camera, 0, 0, 1); if(xKeyDown(KEY_S)) xMoveEntity(camera, 0, 0, -1); if(xKeyDown(KEY_A)) xMoveEntity(camera, -1, 0, 0); if(xKeyDown(KEY_D)) xMoveEntity(camera, 1, 0, 0); in einer seperaten movement.h datei haben.... so hier solls dann in der movement.h aussehen und ich will das dann mit move(); in der main aufrufen können. leider kommt dann der fehler weil "camera" nicht bekannt ist... Code: int move{ if(xKeyDown(KEY_W)) xMoveEntity(camera, 0, 0, 1); if(xKeyDown(KEY_S)) xMoveEntity(camera, 0, 0, -1); if(xKeyDown(KEY_A)) xMoveEntity(camera, -1, 0, 0); if(xKeyDown(KEY_D)) xMoveEntity(camera, 1, 0, 0); } + Multi-Zitat Zitieren
#4 11. November 2010 AW: Externe Variable benutzen In dem Fall solltest du die kamera der Funktion move als Referenz oder Pointer übergeben. also sowas wie Code: int move(int& camera) {...} greez + Multi-Zitat Zitieren
#5 11. November 2010 AW: Externe Variable benutzen Klingt logisch habs so gemacht geht aber noch nicht Code: #include "stdafx.h" #include "test.h" #include <xors3d.h> #include <iostream> #include "defs.h" #include "movement.h" int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { xGraphics3D(1366, 768, 32, false, true); xHidePointer(); int camera = xCreateCamera(); xPositionEntity(camera, 70, 60, 80); int light = xCreateLight(); xPositionEntity(light, 50, 60, 60); xRotateEntity(light, 45, 45, 45); int terrain = xLoadMesh("media/terrain.b3d"); xPositionEntity(terrain, 0, 0, 0); int hud_left = xLoadImage("media/hud-left.png"); while(!xKeyDown(KEY_ESCAPE)) { move(camera); xRenderWorld(); xDrawImage(hud_left, -25, 575); xFlip(); } return 0; } movement.h Code: int move(int cam) { if(xKeyDown(KEY_W)) xMoveEntity(camera, 0, 0, 1); if(xKeyDown(KEY_S)) xMoveEntity(camera, 0, 0, -1); if(xKeyDown(KEY_A)) xMoveEntity(camera, -1, 0, 0); if(xKeyDown(KEY_D)) xMoveEntity(camera, 1, 0, 0); return 0; } + Multi-Zitat Zitieren
#6 11. November 2010 AW: Externe Variable benutzen Genaue Fehlermeldung wäre auch nicht schlecht. So können wir dir auch nur bedingt helfen... greez + Multi-Zitat Zitieren
#7 11. November 2010 AW: Externe Variable benutzen Code: 1>c:\users\nutzer\desktop\test\test\movement.h(5): error C2065: 'camera': nichtdeklarierter Bezeichner + Multi-Zitat Zitieren
#8 11. November 2010 AW: Externe Variable benutzen int move(int cam) { if(xKeyDown(KEY_W)) xMoveEntity(camera, 0, 0, 1); ... return 0; } Und jetzt nochmal bitte genau lesen .. + Multi-Zitat Zitieren
#9 11. November 2010 AW: Externe Variable benutzen Frag mich, wieso Du nicht erstmal die Grundlagen lernst, bevor Du irgenwelche grafischen Anwendungen programmierst. Mit Sätzen wie "Hab was gemacht, geht nicht" kommst Du nicht weit. Zumal man da die Vermutung bekommt, dass Du nicht versucht hast den Fehler zu finden, oder den Code kopiert hast und etwas dran ändern wolltest. Lern lieber erstmal die Grundlagen und gewöhn dir einen ordentlichen Stil an, dann hast Du später wenige Probleme und brauchst eventuell nicht mal externe Hilfen (Referenzen ausgenommen, sind immer nützlich). + Multi-Zitat Zitieren
#10 11. November 2010 AW: Externe Variable benutzen Hab den Fehler vorhin selber bemerkt..habe die engine mit ner anderen sprache genutzt und nun erst mit c++....also nich hauen ich lerne ja noch dazu. + Multi-Zitat Zitieren