std::wstring benutzen

Kaiser206

Erfahrenes Mitglied
Hallo,

ich will ein programm von std::string nach std:wstring umschreiben. Ich benutze MinGW (g++) für Windows. Wenn ich ohne Weiteres versuche std::wstring zu benutzen kommt die Fehlermeldung: wstring is not a member of std.

Kann mir jemand erklären was ich machen kann um wstring zu benutzen?
 
Hallo,

ich will ein programm von std::string nach std:wstring umschreiben. Ich benutze MinGW (g++) für Windows. Wenn ich ohne Weiteres versuche std::wstring zu benutzen kommt die Fehlermeldung: wstring is not a member of std.

Kann mir jemand erklären was ich machen kann um wstring zu benutzen?

hast du die Klasse <string> eingebunden!!

Beispiel:

wstring s2 ( L"abc" );


Gruss muephil
 
Zuletzt bearbeitet:
Hi.

Die STL von MinGW GCC hat in der aktuellen Version (3.4) keine wide character Unterstützung. Da müßtest du eine andere STL verwenden (z.B. STLport) oder einen anderen Compiler oder die Testversion von MinGW GCC 4.3 installieren.

Gruß
 
Hm, davon habe ich auch mal gehört. Aber es geht jetzt tatsächtlich mit <string>!

Allerdings kann ich den String jetzt nicht mehr ausgeben:

std::wstring s2 = L"test"; //OK
std::wcout << s2; //Fehler

Hier kommt der selbe Fehler, not a member of std. Das seltsame ist nur, dass das einfache cout noch geht:
cout << "test";
 
Hm, davon habe ich auch mal gehört. Aber es geht jetzt tatsächtlich mit <string>!
Ja, der typedef basic_string<wchar> ist noch drin, aber die ganzen Ein-/Ausgabeoperatoren der IOStreams gibt es nicht in der Bibliothek, d.h. sie sind nicht implementiert.

\edit. Du könntest auch noch das Makro _GLIBCXX_USE_WCHAR_T definieren, dann würde dein Code auch mit wcout kompiliert werden, allerdings würdest du dann Linkerfehler bekommen.

siehe http://www.mingw.org/wiki/wide_characters

Gruß
 
Zuletzt bearbeitet:
Zurück