Probleme beim Linken mit static Variablen



  • Hallo !

    Ich habe in meiner class mehrere static variablen implementiert (BCB6).
    Der Linker meldet jedoch jedesmal den Fehler "Ungelöste Externe DDIinfoPtr ..."

    Woran liegt das ?
    Vielen Dank

    class TPhoenixEthDrv : public TObject
    {
    	static T_DDI_VERSION_INFO    DDIinfoPtr;
    
    private:	// Anwender-Deklarationen
    ...
    
    public:		// Anwender-Deklarationen
    
    ...
    	static	 int  __fastcall MyDDI_GetInfo		(void);
    };
    


  • Hallo,

    Du hast deine statische Variable nur deklariert aber nicht definiert. Schreibe in die cpp noch die Definition:

    T_DDI_VERSION_INFO TPhoenixEthDrv::DDIinfoPtr;
    


  • Hallo

    Du must die statischen variablen nicht nur deklarieren, sondern auch implementieren.

    // Header
    class TPhoenixEthDrv : public TObject
    {
        static T_DDI_VERSION_INFO    DDIinfoPtr;
    
    };
    
    // Implementationsdatei
    T_DDI_VERSION_INFO    TPhoenixEthDrv::DDIinfoPtr = ...; // Hier auch initialisierung
    

    bis bald
    akari

    /Edit : Zu spät



  • Danke für den Hinweis.

    Ich habe nun die Zeile in den Constructor eingefügt:

    __fastcall TPhoenixEthDrv::TPhoenixEthDrv(void) {
    
    	T_DDI_VERSION_INFO    TPhoenixEthDrv::DDIinfoPtr;
    }
    

    Aber das ist wohl die falsche Stelle, denn ich aber die Fehlermeldung:
    "Bezeichner .. darf keinen Typqualifizierer besitzen."



  • Hallo

    Du sollst diese Zeile doch nicht in den Konstruktor einfügen.

    bis bald
    akari



  • Kk, danke.
    Jetzt klappt es.


Anmelden zum Antworten