Zum Inhalt springen

Fehler bei globaler Funkion u. Variable


Empfohlene Beiträge

Hi Leute

Ich habe eine C++ Anwendung mit mehreren Klassen (incl. einer Applikationsklasse).

Nun brauche ich aber zusätzlich noch ein paar globale Variablen und Funktionen.

Also hab ich mir eine extra

"globaleSachen.h"

datei erstellt, und da alle globalen sachen reingeschrieben.

Wenn ich aber jetzt in meiner Applikationsklasse und in einer anderen Klasse

#include "globaleSachen.h"

schreibe bekomme ich immer Fehler wie z.B.

error LNK2005: "struct HINSTANCE__ * hDll" (?hDll@@3PAUHINSTANCE__@@A) bereits in ForeignAPI.obj definiert

vermutich liegts an dem doppelten #include (denk ich mal)

aber ich wnen ich das #include weglasse dann kennt der compiler meine Variablen/funktionen nicht...

Was kann ich tun?

Danke für eure hilfe!

Ciao SwordMaster

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab jetzt nochmal im internet nach dem fehler gesucht. und auch was gefunden.

Da stand ich soll meine variable als extern deklariern...

also hab ich erst mal nachgekuckt wie das geht :-).

nur ich versteht das jetzt nicht ganz.

wenn ich jetzt angekommen eine globale variable "int zahl" brauche.

Brauche ich dann zwei header dateien??

eine headerdatei wo "int zahl" drinnensteht und die nur EINMAL includiert wird.

und eine headerdatei wo "extern zahl" drinnensteht? die ich dann öfter includieren kann?

Hoffe jemand kann mir dass nochmal kurz erklären

Danke SwordMaster

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ja, das ist im Prinzip richtig. Allerdings wird "int zahl" üblicherweise nicht in einer Header Datei implementiert, sondern in einer C oder C++ Datei (beispielsweise "zahl.C") . In der Header-Datei wird dann nur "extern int zahl" deklariert und überall inkludiert, wo auf die globale Variable "zahl" zugegriffen werden soll; dazu muss dann noch die entsprechende Objektdatei (im Beispiel "zahl.o") gelinkt werden.

Nic

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok, bin mal gespannt ob ich dass hinbring....

hät eigentlich gehofft dass das etwas einfacher ist :-).

Naja wie auch immer... ich hab ja nicht nur variablen sondern auch Funktionen.

Also hab ich wieder zwei Dateien angelegt.

eine MyFile.h und eine MyFile..cpp

in der MyFile.h datei steht beispielsweise

void test();

in der MyFile.cpp steht:

#include "MyFile.h"

void test()

{

AfxMessageBox("bla");

}

jetzt bekomme ich den fehler:

fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei

also mir sagt das jetzt im moment gar nix :-(.

Was hab ich jetzt falsch gemacht? heut scheint nicht mein tag zu sein

Danke für eure Hilfe

SwordMaster

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...