string to wide character
-
Hallo,
ich nutze im Moment die GDI+. Um eine Bilddatei(*.bmp) zu öffnen rufe ich folgenden Code auf:
Image image(L"C:\\Bild.bmp");Hart kodieren ist aber öde also wollte ich einen string übergeben.
Könnte mir jemand sagen, wie ich einen string in einen const WCHAR* konvertieren kann?So Sachen wie:
string Datei = "C:\\Bild.bmp"; Image image(Datei); Image image((const WCHAR*)Datei); Image image(Datei.c_str());brachten nicht den gewünschten Erfolg:-(
-
Benutze einfach std::wstring.
-
char *ansistring = ?; // oder TCHAR* WCHAR *unistring; if (!SHStrDup(ansistring, &unistring)) // shlwapi.h + shlwapi.lib { ... CoTaskMemFree(unistring); }SHStrDup ist super einfach und kurz, mit MultiByteToWideChar geht auch, aber Du brauchst einen output-buffer für unicode-string.
-
Musst du denn unbedingt unter Unicode arbeiten?
#undef UNICODE #undef _UNICODEhilft,und du brauchst die ganze Konvertiererei mit dem Widechar-Geraffel nicht,sondern kannst ganz normal mit (const) char* usw. arbeiten!
-
Wutz schrieb:
Musst du denn unbedingt unter Unicode arbeiten?
#undef UNICODE #undef _UNICODEhilft,und du brauchst die ganze Konvertiererei mit dem Widechar-Geraffel nicht,sondern kannst ganz normal mit (const) char* usw. arbeiten!
Da würd ich eher den (natürlichen) Ansatz wählen, überall WideChars zu benutzten.
-
Bei der WinAPI-Programmierung bedeutet das benutzen von ASCII eh nur Overhead, da jeder ASCII-String zuerst in einem Wide-String konvertiert wird...
-
Icematix schrieb:
Bei der WinAPI-Programmierung bedeutet das benutzen von ASCII eh nur Overhead, da jeder ASCII-String zuerst in einem Wide-String konvertiert wird...
Aha, auch bei Win9x kompatibelen Programmen?
-
Hi
Jenachdem was es für ein Sys ist. bzw. ob es UNICODE unterstützt! Win95-Win98 hat da nicht wirklich was am Hut. Erst ab NT.
lowbyte
-
Und wer zur Hölle entwickelt noch für die Krücken?

In meinen Augen sollte man die Leute schon von XP wegzwingen. Da tut mir die Vorstellung, Leute könnten noch 95/98 laufen haben, in der Seele weh...