Stringübergabe an Kette geht nicht?
-
immer noch aktuell. keien Lösung gefunden. kann es sein, dass c_str() aus meinem string was andres bastelt??
-
Da hast du dein Problem:
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTPOSTFIELDSDie Daten müssen aufbewahrt werden, bis curl diese nicht mehr benötigt. Wieso das eine ging und das andere nicht, könnte ein reiner Zufall sein, denn du löst hier undefiniertes Verhalten aus. Der Speicher, auf welcher zugegriffen wird, wurde gelöscht. Du musst den Speicher also erhalten, bis curl diesen nicht mehr benötigt.
Grüssli
PS: Wieso benutzt du nicht die C++ Filestreams?
-
Das heißt also ich muss schon vor dem Programmstart den Speicher für Curl festlegen?
Was wäre der Unterschied zu Filestreams? (habe damit noch nie gearbeitet).
Wie könnten sie mein Problem lösen?Grüße
-
howdyman schrieb:
Das heißt also ich muss schon vor dem Programmstart den Speicher für Curl festlegen?
Nein, du musst einfach den Speicher aufbewahren, bis du den Transfer erledigt hast. Steht alles in der Dokumentation. Lies zum Beispiel mal den Link, den ich dazugefügt habe.
howdyman schrieb:
Was wäre der Unterschied zu Filestreams? (habe damit noch nie gearbeitet).
Wie könnten sie mein Problem lösen?Dein Problem können diese nicht lösen. Nur ist es üblich, dass man in C++ mit C++ programmiert und in C mit C. Du vermischst hier C und C++ und davon rattet man ab, da es zu Fehlern führen kann. Wenn du noch nie mit Filestreams gearbeitet hast, dann solltest du vielleicht mal ein sinnvolles Tutorial zu C++ durchmachen oder aber gleich ein Buch kaufen, welches dir eine gute Einführung gibt. Als Bücher wären hier wohl vor allem den C++ Primer und Thinking in C++ 1&2 zu nennen.
Grüssli
-
Jo, ich versteh zwar, was gemeint ist mit "Speicher aufbewahren", aber wie ich es im Programm umsetzte? keine Ahnung

Zum 2ten. : Recht hast du, werde mal sehen, dass ich mir noch ein vernünftiges Buch besorge... danke schonmal für die Tipps,
würde trotzdem gerne wissen, wie ich den speicher "aufbewahre".
Grüße
-
Jo, ich versteh zwar, was gemeint ist mit "Speicher aufbewahren", aber wie ich es im Programm umsetzte? keine Ahnung

Zum 2ten. : Recht hast du, werde mal sehen, dass ich mir noch ein vernünftiges Buch besorge... danke schonmal für die Tipps,
würde trotzdem gerne wissen, wie ich den speicher "aufbewahre".
Grüße
-
so, habe jetzt versucht, die setopt Funktion in einem CURLcode Array zu speichern und per Inkrement quasi mitlaufen zu lassen. Funktioniert aber genausowenig. Ich finde es schon merkwürdig, da das Programm ja läuft, wenn ich ihm einen direkten String gebe. Über die Funktion ist es ja nichts anderes, also Rückgabewert habe ich ja auch einen string.
Erschließt sich mir nicht.
jede Hilfe Willkommen

-
Dann mach mal ne globale und schau, was damit gemacht wird..
-
jo, das mit der Globalen hab ich auch schon versucht. Hilft alles nichts
naja, schade eigentlich. Habe gestern bisschen in der WinHTTP API gelesen und damit kann ich ja eigentlich auch einen POST request schicken. Vielleicht funktionierts ja damit. Versuche es jedenfalls mal wenn ich daheim bin, hehe.
-
*kopf schüttelt*
Was ist denn daran bitte so schwer?void foo() { std::string temp = retusrpwd(); // Wir heben den Speicher auf. // ... curl_easy_setopt(easyhandle, CURLOPT_POSTFIELDS, temp.c_str()); // Setzen ihn. // ... curl_easy_perform(easyhandle); // Benutzen ihn. // Und temp Speicher darf freigegeben werden. }Dir scheint echt viel Grundverständnis in C++ zu fehlen. Ich rate dringend zu einem dieser Bücher, sonst verrennst du dich andauernd komplett.
Es gäbe im übrigen nämlich auch noch eine CURL Bibliothek für C++, bzw. einen Wrapper:
http://curl.haxx.se/libcurl/cplusplus/
http://rrette.com/textpattern/index.php?s=cURLppGrüssli