Einbinden von globalen Variablen



  • Tag,

    ich habe eine Frage. Wie bindet ihr globale Variablen in eure MFC-Programme?

    Ich habe bei so vielen Dateien das Problem, dass ich nicht weis, wie ich sie hinzufügen kann, so dass die Variablen auch in allen Dateien erkannt werden.
    Am besten wäre ja am 'Anfang vom Programm'. Aber wo soll dieser Anfang sein?

    DANKE.
    H.W.



  • Ich vermeide globale Variablen, wenn es möglich ist (da kommen zu viele Leute/Funktionen dran). Wenn ich doch mal welche brauche, kommt meistens im passenden Header eine extern Deklaration der Variable und im zugehörigen CPP-File die entsprechende Definition hin.



  • deklariere sie in der StdAfx.h und löse sie in der StdAfx.cpp auf
    somit kannst du sie in allen dateien deines projectes nutzen.

    *.h
    extern Typ MeineVariable;
    *.cpp
    Typ MeineVariable



  • @LowFly:

    Naja, scheint bei mir nicht zu funktionieren. Ich bekomme hier folgende Fehlermeldung:

    fatal error LNK1169: one or more multiply defined symbols found

    H.W.



  • dann includest du irgendwo in einer *.h ein StdAfx.h oder die variable doppelt.



  • Wie sehen denn deine Deklarationen aus?
    (und hast du daran gedacht, daß du für eine reine Variablen-Deklaration ein 'extern' brauchst?

    @LowFly: Die stdafx wäre für mich der letzte Ort, wo ich eine globale Variable zwischenlagern würde. Meistens besteht ja eine Verbindung dieser Variable zu einer meiner Klassen - und dann würde ich sie auch in der .H/.CPP dieser Klasse unterbringen.



  • ich weis aber er schrieb ja er will sie in allen dateien nutzen und somit ist die StdAfx der günztigste platz da diese von allen Dateien als erstes geladen wird & auch von allen dateien includet wird
    oder irre ich mich



  • Hallo LowFly && CStoll,

    danke für die Tips, es funktioniert jetzt!

    H.W.


Anmelden zum Antworten