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); }; Zitieren
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; Zitieren
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. Zitieren
wulfgang Geschrieben 30. Januar 2009 Autor Geschrieben 30. Januar 2009 Jo danke, die Zeigerübergabe funktioniert glaube ich. Zitieren
Empfohlene Beiträge
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.