std::string einem wchar_t* zuweisen
-
Hi,
ich hab ein Problem um eine bestimmte Funktion zu nutzen, muß ich dieser einen wchar_t* übergeben. Da aber der String, den ich übergeben will ein std:string ist, muß ich ja den std::string in einen wchar_t* konvertieren. Hab aber keine Ahnung wie das geht?
Kann mir jemand helfen?
Grüßle
-
mystdstring.c_str();
`
?
-
Hi,
wenn du das so meinst:
wchar_t wtest;
std::string stest;wtest = stest.c_str();
dass geht nicht, bekommt man immer eine Fehlermeldung!
Grüßle
-
Du kannst diese Funktion dafür verwenden:
size_t mbstowcs( wchar_t *wcstr, const char *mbstr, size_t count );
-
Hallo,
probiere es so:
wchar_t wtest[1024] = {0,}; std::string stest("AnsiString"); char* src = stest.c_str(); mbsrtowcs(wtest, &src, stest.size(), NULL);
MfG
-
richtiger mit const
:
wchar_t wtest[1024] = {0,}; std::string stest("AnsiString"); [b]const[/b] char* src = stest.c_str(); mbsrtowcs(wtest, &src, stest.size(), NULL);
MfG
-
noch einfacher gehts so
#include <comdef.h>
std::string test = "moin";
wchar_t wtest = _bstr_t(test.c_str());
-
0rp schrieb:
noch einfacher gehts so
ja, aber nur auf einem Windows-System, aber da es hier eher um (ANSI-)Standard-C++ geht, bleiben -- bei mir wenigstens -- solche Lösungen erst mal weg... ;), warum gleich mit COM-Klassen arbeiten, wenn es auch so geht
MfG
-
Warum arbeitest du nicht gleich mit std::wstring?
-
Hallo,
schon in unsere FAQ geschaut?