in WCHAR variable string schreiben
-
ich habe gerade
WCHAR buf[100000];
string tes;
tes = "hihihihi";wcscpy(buf,L"adfg45678");//hier wird "adfg45678" in buf kopiert
ich würde aber gerne string tes mit seinem inhalt in buf kopieren!!!????
weiß jemand wie ich dass am besten anstelle???
dankend für jede hilfe und tip
fubu
-
wenn das ein Standard-stl-String ist, kannst du nur zeichenweise kopieren, weil der string ascii beinhaltet(for_each dazu benutzen)
-
Alternativ bietet C++ auch die Klasse "wstring" (arbeitet wie string, allerdings auf wchar_t).
-
Nimm einfach ToUnicode aus der Winapi und gib als Ziel deinen buf an.
-
wchar_t* convertStr(char *s) {
size_t len = strlen(s);
size_t count = mbstowcs(NULL, s, len);
wchar_t *r = (wchar_t*) malloc ((count + 1) * sizeof(wchar_t));
mbstowcs(r, s, len);
return r;
}WCHAR buf[100000];
string tes;
tes = "hihihihi";
buf = convertStr(tes);ich habe es mit dieser funktion siehe oben versucht....bekomme aber diesen fehler
error C2664: 'convertStr' : Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in
'char *' nicht moeglichwas habe ich den hier falsch gemacht??
thanx for help
-
fubu16 schrieb:
was habe ich den hier falsch gemacht??
string's bieten keine implizite Umwandlung nach char* - also entweder du deklarierst deine Funktion so, daß sie mit string's arbeitet (ist sowieso besser als das char*-Gegurke ;)) oder du übergibst ihr "tes.c_str()" (da benötigst du allerdings den Parametertyp const char*).
PS: "buf=..." dürfte die nächste Fehlermeldung rausgeben
