[WINAPI] Warum L""?

L

llf

Warum muss man in MS Visual C++ eigentlich immer, wenn man einen String ausgeben will, vor die Anfürungszeichen ein L schreiben?
 
Hi.

Das ist nicht immer so. Es hängt von den Unicode Einstellungen ab.

Standardmäßig ist Unicode aktiviert und man muß "wide-character" Stringliterale / Zeichenliterale verwenden (die mit L"" bzw. L''). Deren Typ ist dann auch nicht mehr "const char*" bzw. "const char" sondern "const wchar_t*" und "const wchar_t" respektive.

Wenn man es ganz allgemein halten will, verwendet man das _TEXT bzw. _T Makro um alle String-/Zeichenliterale. Dabei wird dann ein L vor dem Literal eingefügt wenn Unicode angeschaltet ist, sonst nicht.
C:
#include <tchar.h>

...

LPCTSTR str = _TEXT("blub");
LPCTSTR s = _T("bla");
Ansonsten kannst du die Unicode Unterstützung in den Projekteinstellungen auch ausschalten.

Gruß
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück