wulfgang Geschrieben 30. Januar 2009 Geschrieben 30. Januar 2009 Hallo, ich bekomme von GetFtpConnection einen Zeiger auf CFtpConnection. CFtpConnection *connection; connection = session.GetFtpConnection(pstrServer, login, passwd, port, bPassive Diese Funktion ist in einer Klasse implementiert. Ich möchte, dass zurückgegebene Zeiger auch für andere Funktionen außerhalb der Klasse verfügbar ist.Nun hatte ich gehofft dies ginge über eine statische Funktion/Member-Variable. Allerdings erhalte ich noch error LNK2001: unresolved external symbol "public: static class CFtpConnection * Connect::connection_pointer" (?connection_pointer@Connect@@2PAVCFtpConnection@@A) und fatal error LNK1120: 1 unresolved externals In Connect.cpp: Connect::Connect(void) {...... if(connection = session.GetFtpConnection(pstrServer, login, passwd, port, bPassive)) { cout << "Verbindung wurde aufgebaut\n"; connection_pointer=connection; } CFtpConnection Connect::*connection_pointer=0; ....} CFtpConnection Connect::*connection_pointer=0; CFtpConnection * Connect::getLastConnection() { return connection_pointer; } ..... In Connect.h class Connect { public: Connect(void); static CFtpConnection * Connect::getLastConnection(); static CFtpConnection *connection_pointer; public: ~Connect(void); };
Klotzkopp Geschrieben 30. Januar 2009 Geschrieben 30. Januar 2009 Du musst die statische Membervariable noch definieren, am besten in Connect.cpp: CFtpConnection* Connect::connection_pointer;
TDM Geschrieben 30. Januar 2009 Geschrieben 30. Januar 2009 Die Zeile im Konstruktor: CFtpConnection Connect::*connection_pointer=0; raus. Die Zeile für die Deklaration: CFtpConnection Connect::*connection_pointer=0; ändern in: CFtpConnection* Connect::connection_pointer=NULL; [Editerle] Du musst die statische Membervariable noch definieren, am besten in Connect.cpp: CFtpConnection* Connect::connection_pointer; Würde ich besser mit NULL definieren, sonst zeigt der Zeiger irgendwo hin.
wulfgang Geschrieben 30. Januar 2009 Autor Geschrieben 30. Januar 2009 Jo danke, die Zeigerübergabe funktioniert glaube ich.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden