FtpGetCurrentDirectoryW' : cannot convert parameter 2 from 'class CString' to 'unsigned short *'
-
Hi Leute, ich komme grade absolut nicht weiter:
FtpGetCurrentDirectory(hFtpConnect,cs_remotefile,0); cs_remotefile += cs_ladeliste+ "_verladen.txt";
Fehlermeldung:
error C2664: 'FtpGetCurrentDirectoryW' : cannot convert parameter 2 from 'class CString' to 'unsigned short *'
Ich bekomm es nicht auf die Reuhe das so zu konvertieren, dass der Compiler das so akzeptiert. Weis jmd. von euch wie ich das machen kann?
Gruß Basti
-
FtpGetCurrentDirectory(hFtpConnect,(LPTSTR)cs_remotefile,0);
kanns aber momentan nicht testen, also ohne Gewähr
der 3. Parameter ist die Länge des Buffers. 0 ist da wohl etwas kurz.
grüssle
-
also mit:
FtpGetCurrentDirectory(hFtpConnect,(LPTSTR)cs_remotefile,0);
gibt es:
'type cast' : cannot convert from 'class CString' to 'unsigned short *'und mit:
FtpGetCurrentDirectory(hFtpConnect,(LPCTSTR)cs_remotefile,0);
gibt es:
FtpGetCurrentDirectoryW' : cannot convert parameter 2 from 'const unsigned short *' to 'unsigned short *'
-
probiers mal so:
TCHAR cs_remotefile[256]; FtpGetCurrentDirectory(hFtpConnect,cs_remotefile,256);
musst danach nur noch den TCHAR in einen CString conv.
grüssle
-
Oder mit GetBuffer():
FtpGetCurrentDirectory(hFtpConnect,cs_remotefile.GetBuffer(256),256); cs_remotefile.ReleaseBuffer; ...
-
ah, danke CStoll, GetBuffer hat wunderbar funktioniert
Gruß Baschtl
-
Nur mal zur Erklärung des Problems (für dich und andere): CString lässt sich zwar in einen TCHAR* konvertieren - allerdings in einen konstanten. Und es wäre auch sehr ärgerlich, wenn du über TCHAR* Funktionen dort etwas reinschreibst, ohne den String davon zu informieren. GetBuffer(n) reserviert sich als erstes ausreichend Platz für (mindestens) n Zeichen plus Null-Terminator und gibt einen nicht-konstanten Zeiger auf diesen Bereich zurück. Gleichzeitig merkt es sich intern, daß der Datenspeicher gerade schreibend verwendet wird.
(und ReleaseBuffer() setzt diese Marke wieder zurück)