# std::wstring benutzen



## Kaiser206 (24. April 2009)

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?


----------



## muephil (24. April 2009)

Kaiser206 hat gesagt.:


> 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


----------



## deepthroat (24. April 2009)

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ß


----------



## Kaiser206 (24. April 2009)

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";


----------



## deepthroat (24. April 2009)

Kaiser206 hat gesagt.:


> 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ß


----------

