LPWSTR & SysAllocString ???
-
Hallo zusammen,
ich bin neu hier und blutiger Anfänger, was C++ Programmierung angeht. Ich hoffe, dass ich mit meinem ersten Thread auch ins richtige Forum poste.
Meine Frage lautet wie folgt:
Was bedeutet bei dieser Deklaration das "L" vor dem String "customer.csv"?LPWSTR pwszTableName = L"customer.csv";
Etwas später im Code wird auf diese Deklaration wieder Bezug genommen:
V_BSTR(&(dbProp[0].vValue)) = SysAllocString( L"." );
Was passiert in dieser Zeile ungefähr? Ist das eine Art Platzhalter, Wildcat oder Substitution?
-
Das L bedeutet wide-character.
Schreibst du nur "abc" hast du 3 ASCII Zeichen, Typ char, jedes ist 8 Bit (1 Byte) groß. Schreibst du L"abc" hast du 3 "wide character" (Zeichen), Typ wchar_t. Was das bedeutet ist nicht festgelegt (von Compiler zu Compiler unterschiedlich).
char* c = "abc" // ok char* c = L"abc" // Fehler, L"abc" ist vom Typ wchar_t wchar_t* c = "abc" // Fehler, "abc" ist vom Typ char wchar_t* c = L"abc" // ok
Falls du Visual Studio nutzt ist wchar_t 16 bit Unicode.
-
Noch als Tip: nimm einfach TCHAR und benutze statt L das Macro _T("dein string"), dann wir je nach Projektkonfiguration das richtige ausgewählt.