Dateien
-
hallo
Also, erstmal alle eine Panzerfaust rausholen und damit auf MS VS 2005 schießen.
ne Scherz. aber ich zumindest bin kurz vorm ausrasten. Der (die) Fehler basiert 100% auf meiner unwissenheit, aber egal.
Hab ein wenig mit HGE (Diese 2D-Spiele-Engine) Programmiert, jetzt wollte ich es mal in einem Child-fenster ausprobieren. Hab dabei auch noch VS eine Windows-Anwedung erstellen lassen, mit stdafx u.ä. Also kein eigenbau mit nur einer Datei^^"".
Nun hab ich ein problem: ich hab überhaupt keine ahnung, was ich wohin includen soll, egal, was ich ausprobiert hab, es scheitert fatal. folgende Dateien müssen mit rein:hgeh.h // hier sind die Deklarationen von hge-objekten/Funktionen drin
hgec.cpp // hier sind Definitionen der Funktionender Rest ist das von VS erstellte. in StdAfx.h sind auch die HGE-header, um die Engine zu verwenden, in HGEinCW.cpp ist die Main-Funktion, in HGEinCW.h hab ich noch
#include "hgeh.h"
hingetan,in hgec.cpp steht
#include "stdafx.h"
#include "hgeh.h"
am anfang, in HGEinCW.cpp ist folgendes eingebunden:
#include "stdafx.h"
#include "HGEinCW.h"ich bekomme Linker Fehler:
hgec.obj : error LNK2005: "struct hgeQuad * Quad" (?Quad@@3PAUhgeQuad@@A) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "class hgeSprite * spr" (?spr@@3PAVhgeSprite@@A) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "class hgeSprite * spt" (?spt@@3PAVhgeSprite@@A) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "class hgeSprite * tar" (?tar@@3PAVhgeSprite@@A) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "class hgeFont * fnt" (?fnt@@3PAVhgeFont@@A) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "class hgeParticleSystem * * par" (?par@@3PAPAVhgeParticleSystem@@A) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "unsigned long tex" (?tex@@3KA) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "unsigned long target" (?target@@3KA) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "unsigned long snd" (?snd@@3KA) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "struct GSpace GlobalSpace" (?GlobalSpace@@3UGSpace@@A) ist bereits in HGEinCW.obj definiert. hgec.obj : error LNK2005: "class HGE * hge" (?hge@@3PAVHGE@@A) ist bereits in HGEinCW.obj definiert.hier nochmal meine hgeh.h und HGEinCW.h:
// hgeh.h HGE *hge=0; hgeQuad Quad[4]; hgeSprite *spr; hgeSprite *spt; hgeSprite *tar; hgeFont *fnt; hgeParticleSystem *par[4]; HTEXTURE tex; HTARGET target; HEFFECT snd; enum{GSX=0, GSY, GSDX, GSDY, GSSPD, GSFR}; struct GSpace { DWORD space[8]; }; GSpace GlobalSpace; void boom(int, int, int); bool FrameFunc(); bool RenderFunc(); bool FocusGainFunc(); void writeGS(void*,short); float GetGSfloat(short); int GetGSint(short); POINT QuadFromMP(float x, float y, hgeQuad *Quad);//HGEinCW.h #pragma once #pragma comment(lib, "hge.lib") #pragma comment(lib, "hgehelp.lib") #include "resource.h" #include "hgeh.h"hoffe, ihr könnt mir irgendwie helfen
-
Mach mal in deine Headerdateien ganz oben das rein:
#pragma once
-
ne, hilft nicht^^". Ich mein - wenn das doch doppelt definiert wäre, würde der compiler meckern, nicht der linker.
Jap - hab ausprobiert - klappt nicht

Kann es noch etwas anderes sein?
-
Siehe mein letztes Posting in:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-174167.html
-
super, danke.
hmmm... nun meckert er wegen funktionen ^^". kann man das bei Funktionen genauso machen?
-
Azrael, il Meraz schrieb:
kann man das bei Funktionen genauso machen?
Ja.
-
thank you very much ^^"