Wie binde ich eine std:: ein?
-
Hallo Leute!
Ich habe folgendes Problem! (C++ anfänger)
Ich will in meinem Programm das hier einbinden!std::string GenerateMultipartBoundary() { std::string boundaryPrefix(27, '-'); int r0 = rand() & 0xffff; int r1 = rand() & 0xffff; int r2 = rand() & 0xffff; char temp[13]; sprintf(temp, "%04X%04X%04X", r0, r1, r2); return boundaryPrefix + temp; }
Und dann in einer .cpp aufrufen:
std::string boundary = GenerateMultipartBoundary();
Wo muss die Deklaration hin?
Also in der entsprechenden .cpp klappt das nicht und im header auch nicht . .
Vielen Dank für die Hilfe!
-
#include <string>
-
Hab es schon gefunden
#include <string>
hatte ich schon :pAber ich habe die deklaration ganz nach unten in der cpp stehen gehabt.
Wusste nicht, dass das bei c++ einen Unterschied macht
-
Jetzt stehe ich schon vor dem nächsten Problem!
Also ich baue eine HTTP-Conn auf und generiere den Body.
Dann versende ich die Datei.
Das Problem ist, das GenerateRequestBody öfters im Programm aufgerufen wird.
Wenn man es nur einmal aufruft dann klappt es ohne Probleme.std::string requestBody = GenerateRequestBody(lpszLocalFile, boundary);
Wenn ich allerdings ein 2tes mal Aufrufe sagt er mir Invalid allocation size!
[/code]
std::string GenerateRequestBody(const std::string &filename, const std::string &boundary)
{std::string requestBody;
// For each file...
std::string field_name = "upload_file";
std::string contentDisposition = "Content-Disposition: form-data; name=\"" + field_name + "\"; filename=\"" + filename + "\"";
std::string contentType = "Content-Type: application/octet-stream";requestBody.append("--" + boundary + "\r\n");
requestBody.append(contentDisposition + "\r\n");
requestBody.append(contentType + "\r\n");
requestBody.append("\r\n");
requestBody.append(GetFileContents(filename) + "\r\n");// After the last file:
requestBody.append("--" + boundary + "--\r\n");return requestBody;
}´ Den String habe ich auch schon versucht zu entleeren mit. [code] requestBody.empty(); requestBody.erase(); requestBody.clear();
Hat aber leider nicht funktioniert.
Vielen Dank für eure Hilfe...
-
soo nun richtig formatiert
Jetzt stehe ich schon vor dem nächsten Problem!
Also ich baue eine HTTP-Conn auf und generiere den Body.
Dann versende ich die Datei.
Das Problem ist, das GenerateRequestBody öfters im Programm aufgerufen wird.
Wenn man es nur einmal aufruft dann klappt es ohne Probleme.std::string requestBody = GenerateRequestBody(lpszLocalFile, boundary);
Wenn ich allerdings ein 2tes mal Aufrufe sagt er mir Invalid allocation size!
std::string GenerateRequestBody(const std::string &filename, const std::string &boundary) { std::string requestBody; // For each file... std::string field_name = "upload_file"; std::string contentDisposition = "Content-Disposition: form-data; name="" + field_name + ""; filename="" + filename + """; std::string contentType = "Content-Type: application/octet-stream"; requestBody.append("--" + boundary + "\r\n"); requestBody.append(contentDisposition + "\r\n"); requestBody.append(contentType + "\r\n"); requestBody.append("\r\n"); requestBody.append(GetFileContents(filename) + "\r\n"); // After the last file: requestBody.append("--" + boundary + "--\r\n"); return requestBody; }
String habe ich auch schon versucht zu entleeren mit.
requestBody.empty(); requestBody.erase(); requestBody.clear();
Hat aber leider nicht funktioniert.
Vielen Dank für eure Hilfe...
-
ps: der Fehler kommt nach dem er die XML-Datei in den requestBody reinfriemeln will.
requestBody.append(GetFileContents(filename) + "\r\n");