Linker-Errors bei globalen Variablen
-
Hallo, ich konnte es zwar nicht glauben, aber scheinbar gibts es zu folgendem Thema noch keinen Thread hier. (Ich habe nach Globale AND Variablen gesucht + mehrere Abarten dieser Wörter
)Folgendes Problem. Ein Projekt benötigt mehrere globale Variablen, die ich in einer header-Datei globals.h deklariere. Damit ich diese Variablen in verschiedensten source-files benutzen kann, muss ich sie dort mit "extern <type> <name>" bekannt machen, soweit stimmts noch oder? Kompilieren klappt auch soweit ganz gut, allerdings beschwert sich dann der Linker über mehrfach-Definitionen, Beispiel:
// globals.h HWND g_hMainWnd; // MainWindow WindowHandle;// window.cpp #include "globals.h" extern HWND g_hMainWnd;window.obj : error LNK2005: "struct HWND__ * g_hMainWnd" (?g_hMainWnd@@3PAUHWND__@@A) already defined in main.objIn der main.cpp wird g_hMainWnd nicht verwendet aber auch die "globals.h" eingebunden.
Ich benutze MS Visual Studio 6.0. Was mache ich falsch?
-
du machst es genau falsch rum. das extern muss in den header

-
*schäm*
Funktioniert wunderbar, vielen Dank
