BSTR in unsigned char wandeln und zurück
-
Guten Abend !
Ich versuche einen BSTR (vorerst) in einen char zu wandeln, doch das klappt leider nicht so wie ich das möchte. Ich bekomme nur das erste Zeichen angezeigt.
Hier der Code
#include <windows.h> #include <oleauto.h> #include <iostream> using namespace std; void test(void) { BSTR bstr_string; bstr_string = SysAllocString(OLESTR("Hallo Welt.")); int len = SysStringLen(bstr_string) + 1; char *s_char = new char[len]; WideCharToMultiByte(CP_ACP, NULL, bstr_string, len, s_char, len, NULL, NULL); cout << *s_char << endl; }Ich wäre sehr erfreut wenn mir jemand helfen würde.
Wie bekomme ich allerdings gleich einen unsigned char daraus ???
-
*s_char ist ja auch nur ein Zeichen. Mach doch mal das Sternchen weg.
-
MFK schrieb:
*s_char ist ja auch nur ein Zeichen. Mach doch mal das Sternchen weg.
Das verstehe ich nicht. Ich habe doch Speicher reserviert und new mit [] benutzt. Also müsste das doch ein Array von Zeichen sein, denn
wenn ichchar s_char[12];deklariere und dann an die Funktion übergebe erhalte ich ein/das korrekte/s Ergebnis aber ebenso wenn ich
char *s_char = new char[12];deklariere und dann aber so an die Funktion übergebe.
&(*s_char)Irgendwie steige ich da nicht ganz durch.