Problem bei der Konvertierung von Zeichen
-
Tach zusammen,
ich fummel schon seit Stunden an einem kleinem Problem rum.
Und zwar arbeite ich mit Named Pipes die UNICODE kompatibel sein müssen.
wchar_t * buffer[128]; BOOL success = ReadFile(pipeHandle, buffer, 128, &readCount, NULL );Nun möchte ich den ausgelesenen buffer in einen std::wstring konvertieren, und das ist genau der Punkt an dem ich hänge.
Mit:
std::wstring wstr(*buffer);crasht mir mein Programm leider immer, ich weis auch nicht mehr was ich machen soll.
Wäre super wenn mir jemand nen Tipp geben könnte.
-
Wäre es nicht eher
wchar_t buffer[128]; std::wstring wstr(buffer);? Du willst schliesslich ein Array von
wchar_ts, und nicht von Zeigern aufwchar_ts, oder?
-
Kein Wunder, du übergibst dem
ReadFileein Puffer auf Zeiger zuwchar_tObjekten, welche nicht vorhanden sind. Das ganze sollte wohl eher so lauten:wchar_t buffer[128]; // Den Stern weggenommen. BOOL success = ReadFile(pipeHandle, buffer, 128, &readCount, NULL ); std::wstring str(buffer, readCount); // Oder auch ohne readCount, so lange du garantieren kannst, dass buffer eine Null-Terminierung hat.Grüssli