Linker Warnung



  • Ich erzeuge eine ini Datei. Auf diese Datei wird von mehreren Formularen zu gegriffen. Jetzt erhalte ich mehrere Linker Warnungen.

    [Linker Warnung] Public symbol '_Ini' defined in both module C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\test\START.OBJ and C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\test\UNIT3.OBJ
    [Linker Warnung] Public symbol '_Ini' defined in both module C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\test\START.OBJ and C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\test\UNIT4.OBJ
    [Linker Warnung] Public symbol '_Ini' defined in both module C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\test\UNIT3.OBJ and C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\test\UNIT4.OBJ

    was mache ich falsch??



  • Ist Ini vom Typ TIniFile??? Also im Grunde machst du gar nichts Falsch, wenn du die Warnungen vermeiden willst, gib' den TIniFile-Klassen unterschiedliche Namen...



  • Ja ist TIniFile.

    Ich schreibe in jede Form die auf die ini zugreift:

    TIniFile *Ini = new TIniFile(".\\testini");
    


  • Original erstellt von merkur:
    Ich schreibe in jede Form die auf die ini zugreift:

    falsches verhalten. Wenn es denn schon eine globale Variable sein muss (was ich nicht gerade toll finde, aber egal) dann darfst du die nur in einem Header (!) deklarieren. In den anderen ist dann der Präfix "extern" nötig. Dann sind die Warnungen weg und das Programm läuft auch sauber.

    -junix



  • danke, ich habe die Klassen unterschiedlich benannt. Sag mal Junix, warum sind Private Variblen nicht so toll. Wie könnte ich das mit der ini noch anders realisieren.



  • Hi Merkur,

    Junix sagt GLOBALE Variablen sind nicht toll (nicht PRIVATE!!!)

    Du kannst in jedem Formular Dein
    TIniFile *Ini = new TIniFile(".\\testini");
    schreiben, nur wo: in Create z.B. von jeder Form.

    Der Fehler lautet aber: '_INI' in mehreren Modulen definiert!
    Was ist '_INI' und wo hast Du das stehen? (das sieht wie globale Variable aus - siehe JUNIX .

    Ich definiere immer

    TIniFile *Ini; //im privat der Form
    und mach
    Ini=new TIniFile; //in Create der Form (oder im Constructor.

    delete Ini //in Destroy (oder im Destructor)
    Damit gab's noch nie Probleme!!!


Anmelden zum Antworten