/ / Wie gebe ich eine codierungsunabhängige Zeichenfolgenkonstante in der Windows-API an? - c ++, string, winapi, unicode, zeichenkodierung

Wie gebe ich eine codierungsunabhängige String-Konstante in der Windows-API an? - C ++, String, Winapi, Unicode, Zeichencodierung

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 № 1

Benutzen _T oder TEXT Zeichenkettenliterale zu definieren.

z.B.

SomeOtherMethod( _T( "Hello" ) );

// Becomes either MyMethodA or MyMethodW.
MyMethod( TEXT( "Hello" ) );