Problem mit WinApi FTP Funktion
-
machs lieber mit dem A, is besser. bei belli knallts trotzdem noch in InternetOpen^^
-
Sorry, es muß natürlich:
TCHAR dat1[] = TEXT("c:\\dateiname");
TCHAR dat2[] = TEXT("//dateiname");heißen.
-
Jochen Kalmbach schrieb:
Kannst Du Deine Frage auch so formulieren, dass man es versteht?
Sorry, ich merke grad selber... Also...
Nehmen wir an ich habe einen C++ String. Der C++ String hat den Namen "Dateiname". Dateiname ist initialisiert mit "C:\\Users". Dann habe ich eine WinApi Funktion, die als 2. und 3. Argument jeweils den WERT eines Strings erwartet:
Funktioniert:
FtpPutFile(hConnection, "C:\\dateiname", "//dateiname", FTP_TRANSFER_TYPE_BINARY, 0);Funktioniert nicht:
FtpPutFile(hConnection, Dateiname, "//dateiname", FTP_TRANSFER_TYPE_BINARY, 0);Ich möchte den INHALT des Strings "Dateiname" als Argumente an die Funktion übergeben. Wie?
------------------------------------------------------------------------------Belli schrieb:
Öhhhh, Du kannst ohne weiteres so etwas machen:
void upload(char *server, char *account, char *passwort) { TCHAR dat1[] = "c:\\dateiname"; TCHAR dat2[] = "//dateiname"; [...] FtpPutFile(hConnection, dat1, dat2, FTP_TRANSFER_TYPE_BINARY, 0); [...] }... falls Du das überhaupt gemeint hast ...
Wie konvertiere ich einen C++ String in eine WinApi TCHAR?
-
Mit C++ String meinst du wohl std::string. Dann guck dir mal die Methode c_str an...
-
_matze schrieb:
Mit C++ String meinst du wohl std::string. Dann guck dir mal die Methode c_str an...
Das macht daraus eine C-Char, richtig?
Funktioniert das dann auch mit WinApi-Zeichenketten?
-
skullyan schrieb:
Funktioniert das dann auch mit WinApi-Zeichenketten?
Was sind WinAPI-Zeichenketten??
Das funktioniert mit allen Funktionen, die halt einen C-String (char*) erwarten, was bei den meisten WinAPI-Funktionen der Fall ist.
-
_matze schrieb:
skullyan schrieb:
Funktioniert das dann auch mit WinApi-Zeichenketten?
Was sind WinAPI-Zeichenketten??
Das funktioniert mit allen Funktionen, die halt einen C-String (char*) erwarten, was bei den meisten WinAPI-Funktionen der Fall ist.
Ich dachte so nennt man die TCHAR's. Ich werde es probieren, sobald ich zuhause bin! Danke für den Vorschlag.
-
Habe versucht,
std::stringmittelsc_str()zu konvertieren. Dabei kam das raus:Deklaration der Funktion:
void upload(char *newname);Funktion in main():
std::string newname; // [...] upload(newname.c_str());WinApi Funktion:
void upload(char *server, char *account, char *passwort, char *newname) { HINTERNET hOpen, hConnection; hOpen = InternetOpen("FTP Upload", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); hConnection = InternetConnect(hOpen, server, INTERNET_DEFAULT_FTP_PORT, account, passwort, INTERNET_SERVICE_FTP, 0, 0); FtpPutFile(hConnection, newname, "//Dateiname", FTP_TRANSFER_TYPE_BINARY, 0); InternetCloseHandle(hConnection); InternetCloseHandle(hOpen); }DER FEHLER:
error C2664: 'upload': Konvertierung des Parameters 4 von 'const char *' in 'char *' nicht möglich Durch die Konvertierung gehen Qualifizierer verloren
-
jo einmal hirn anschalten und nochmal versuchen.
-
skullyan schrieb:
[/cpp]
WinApi Funktion:
[cpp]void upload(const char *server, const char *account, const char *passwort, const char *newname)