Veröffentlicht 30. Januar 200916 j 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); };
30. Januar 200916 j Du musst die statische Membervariable noch definieren, am besten in Connect.cpp: CFtpConnection* Connect::connection_pointer;
30. Januar 200916 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.