In C ++ kann eine ASCII-Zeichenfolgenkonstante mithilfe der Syntax angegeben werden "string"
und eine Unicode-Zeichenfolgenkonstante können mithilfe der Syntax angegeben werden L"string"
. In der Windows-API werden die Typen dieser Zeichenfolgenkonstanten aufgerufen LPCSTR
und LPCWSTR
beziehungsweise. Es gibt auch das Makro LPCTSTR
um eine String-Konstante anzugebenKodierung, für die das Programm kompiliert wurde. Gibt es eine ähnliche Syntax für Zeichenfolgenkonstanten, bei denen die Zeichenfolge je nach Kompilierung des Programms in ASCII oder Unicode codiert wird?
Im Wesentlichen frage ich mich, wie man eine LPCTSTR
Konstante in C ++. Es muss einen einfacheren Weg geben als die Verwendung #ifdef _UNICODE
und Schreiben von zwei Versionen jeder Zeile, die eine Zeichenfolgenkonstante benötigt.
Antworten:
3 für die Antwort № 1Benutzen _T
oder TEXT
Zeichenkettenliterale zu definieren.
z.B.
SomeOtherMethod( _T( "Hello" ) );
// Becomes either MyMethodA or MyMethodW.
MyMethod( TEXT( "Hello" ) );