Wie zu verwenden wide-string-Literale in c++, ohne dabei L vor jeder
Du musst verzeihen Sie meine Unwissenheit, aber ich bin nicht verwendet, um mit wide-character-sets in c++, aber gibt es eine Möglichkeit, dass ich verwenden können, wide-string-Literale in c++ ohne ein L vor jedem literal?
Wenn ja, wie?
InformationsquelleAutor Fry | 2008-11-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, gibt es nicht. Verwenden Sie den L prefix (oder ein makro wie _T() mit VC++, erweitert zu L eh beim kompilieren Unicode).
Ja, natürlich. Ich sollte erwähnt haben, dass.
InformationsquelleAutor Ferruccio
Den neuen C++0x-Standard definiert ein anderer Weg, dies zu tun:
http://en.wikipedia.org/wiki/C%2B%2B0x#New_string_literals
InformationsquelleAutor shoosh
auf ein zugehöriger Hinweis..
ich versuche, die folgenden
ist ein makro, das expandiert wird
in
dies funktioniert in c++ visualstudio 2008
aber wenn ich kompilieren Sie den gleichen code unter mac-Xcode (für iphone) bekomme ich die Fehlermeldung:
EDIT: Lösung
diese funktioniert sowohl auf vc++ und mac xcode (gcc)
vielen Dank, dass funktioniert in der Tat.. ich hatte es auf Arbeit mit myclass::getSwitch(L"" #m) auch
InformationsquelleAutor ShoeLace
Warum wollen Sie nicht Präfix-string-Literale mit einem L? Es ist ganz einfach - strings ohne L sind ANSI-Zeichenfolgen (
const char*
), Streicher mit einem L, sind die wide-character-strings (const wchar_t*
). Es ist dieTEXT()
- makro, die ein string-literal in eine ANSI-oder eine wide-character-Zeichenfolge abhängig von dem aktuellen Projekt verwenden Uncode:Gibt es auch die
_T()
makro, das entsprichtTEXT()
.neugierig--wissen Sie, wenn Sie das _T-und TEXT-Makros sind Teil der Sprache standard oder sind Sie MS VC++ spezifischen?
Es ist in WinNT.h (im Lieferumfang von windows.h). Ich würde es nicht als als VC++ - spezifisch, sondern windows-spezifisch, wie es sein würde, die in keinem setup, lassen Sie bauen WinAPI-apps.
InformationsquelleAutor Adam Rosenfield