Richtig, und wenn du irgendwann mal dein Programm in eine andere Sprache portieren willst, gibt es riesige Probleme mit (signed) char. Schon allein Umlaute (wurde das schon erwähnt) sind nicht mal da drin. Erst im unsigned char (256 Zeichen). Nimmt man jetzt aber noch die chinesischen Schriftzeichen hinzu, das sind schon über 10000 ... reicht wohl unsigned char (8Bit) nicht mehr aus, ... also lieber gleich Unicode.
Allles geht sehr einfach mit Unicode. Ich habs auch eingesehen und stell nun endlich auch mal meine Engine um
.
@FOX.
Strings sind aus der STL
Also musst du string.h einbinden
einen String erstellst du so:
|
C-/C++-Quelltext
|
1
|
string mystring = "hallo"
|
. string ist gleichbedeutend mit std::basic_string<char>. wstring ist gleichbedeutend mit std::basic_string<wchar_t>. Also:
|
C-/C++-Quelltext
|
1
|
wstring = L"hallo";
|
Wenn ich richtig informiert bin, schreibt TEXT einfachfach ein L vor den String...
Aber Patrick hat schon recht, man sollte ja eh makros und defines vermeiden... deshalb tendiere ich auch zu der offiziellen Lösung mit L davor bzw. dem cast von Patrick..
Wenn man aber gleich strings benutzt, was sich eh rentiert, dann reicht auch ein plumper static_cast!
@Patrick:
klar...
Aber die Lösung mit MultiByteToWideChar ist ja die selbe bzw. der Lösungsgedanke