GetStringTypeA-Funktion (winnls.h)

Veraltet. Ruft Zeichentypinformationen für die Zeichen in der angegebenen Quellzeichenfolge ab. Für jedes Zeichen in der Zeichenfolge legt die Funktion ein oder mehrere Bits im entsprechenden 16-Bit-Element des Ausgabearrays fest. Jedes Bit identifiziert einen bestimmten Zeichentyp, z. B. Buchstaben, Ziffern oder keines.

Vorsicht Die falsche Verwendung der GetStringTypeA-Funktion kann die Sicherheit Ihrer Anwendung gefährden. Um einen Pufferüberlauf zu vermeiden, muss die Anwendung die Ausgabepuffergröße richtig festlegen. Weitere Sicherheitsinformationen finden Sie unter Sicherheitsüberlegungen: Windows-Benutzeroberfläche.

 

Syntax

BOOL GetStringTypeA(
  [in]  LCID   Locale,
  [in]  DWORD  dwInfoType,
  [in]  LPCSTR lpSrcStr,
  [in]  int    cchSrc,
  [out] LPWORD lpCharType
);

Parameter

[in] Locale

Gebietsschemabezeichner , der das Gebietsschema angibt. Sie können das MAKELCID-Makro verwenden, um einen Gebietsschemabezeichner zu erstellen oder einen der folgenden vordefinierten Werte zu verwenden.

Windows Vista und höher: Die folgenden benutzerdefinierten Gebietsschemabezeichner werden ebenfalls unterstützt.

[in] dwInfoType

Flags, die die abzurufenden Zeichentypinformationen angeben. Mögliche Flagwerte finden Sie im dwInfoType-Parameter von GetStringTypeW. Ausführliche Informationen zu den Zeichentypbits finden Sie unter Hinweise zu GetStringTypeW.

[in] lpSrcStr

Zeiger auf die ANSI-Zeichenfolge, für die die Zeichentypen abgerufen werden sollen. Die Zeichenfolge kann eine DBCS-Zeichenfolge (Double-Byte Character Set) sein, wenn das angegebene Gebietsschema für DBCS geeignet ist. Es wird davon ausgegangen, dass die Zeichenfolge null-beendet ist, wenn cchSrc auf einen beliebigen negativen Wert festgelegt ist.

[in] cchSrc

Größe der von lpSrcStr. angegebenen Zeichenfolge in Zeichen Wenn die Größe ein beendendes NULL-Zeichen enthält, ruft die Funktion Zeichentypinformationen für dieses Zeichen ab. Wenn die Anwendung die Größe auf eine beliebige negative ganze Zahl festlegt, wird angenommen, dass die Quellzeichenfolge null-beendet ist, und die Funktion berechnet die Größe automatisch mit einem zusätzlichen Zeichen für die NULL-Beendigung.

[out] lpCharType

Zeiger auf ein Array mit 16-Bit-Werten. Die Länge dieses Arrays muss groß genug sein, um einen 16-Bit-Wert für jedes Zeichen in der Quellzeichenfolge zu erhalten. Wenn cchSrc keine negative Zahl ist, sollte lpCharType ein Array von Wörtern mit cchSrc-Elementen sein. Wenn cchSrc auf eine negative Zahl festgelegt ist, ist lpCharType ein Array von Wörtern mit lpSrcStr + 1 Elementen. Wenn die Funktion zurückgibt, enthält dieses Array ein Wort, das jedem Zeichen in der Quellzeichenfolge entspricht.

Rückgabewert

Gibt bei erfolgreicher Ausführung einen wert ungleichen Wert zurück, andernfalls 0. Um erweiterte Fehlerinformationen abzurufen, kann die Anwendung GetLastError aufrufen, wodurch einer der folgenden Fehlercodes zurückgegeben werden kann:

  • ERROR_INVALID_FLAGS. Die für Flags angegebenen Werte waren ungültig.
  • ERROR_INVALID_PARAMETER. Jeder der Parameterwerte war ungültig.

Hinweise

Eine Übersicht über die Verwendung der Zeichenfolgenfunktionen finden Sie unter Zeichenfolgen.

Diese Funktion konvertiert die Quellzeichenfolge in Unicode und ruft die entsprechende GetStringTypeW-Funktion auf. Daher entsprechen die Wörter im Ausgabepuffer nicht der ursprünglichen ANSI-Zeichenfolge, sondern ihrer Unicode-Entsprechung. Die Konvertierung von ANSI zu Unicode kann zu einer Änderung der Zeichenfolgenlänge führen, z. B. kann ein ANSI-Zeichenpaar einem einzelnen Unicode-Zeichen zugeordnet werden. Daher ist die Korrespondenz zwischen den Wörtern im Ausgabepuffer und den Zeichen in der ursprünglichen ANSI-Zeichenfolge nicht in allen Fällen eins zu 1, z. B. Multibytezeichenfolgen. Daher ist GetStringTypeA für mehrstellige Zeichenfolgen nur eingeschränkt nutzbar. Stattdessen werden die GetStringTypeW-Funktion und GetStringTypeEx empfohlen.

Wenn diese Funktion mit einem reinen Unicode-Gebietsschemabezeichner verwendet wird, kann die Funktion erfolgreich sein, da das Betriebssystem die Systemcodepage verwendet. Zeichen, die auf der Systemcodepage nicht definiert sind, werden jedoch in der Zeichenfolge als Fragezeichen (?) angezeigt.

Die Werte der Parameter lpSrcStr und lpCharType dürfen nicht identisch sein. Wenn sie identisch sind, schlägt die Funktion mit ERROR_INVALID_PARAMETER fehl.

Der Gebietsschemaparameter wird nur verwendet, um eine Zeichenfolgenkonvertierung in Unicode durchzuführen. Es hat nichts mit den CTYPE*-Werten zu tun, die von der Anwendung bereitgestellt werden. Diese Werte werden ausschließlich durch Unicode-Codepunkte bestimmt und variieren nicht je nach Gebietsschema. Beispielsweise werden griechische Buchstaben als C1_ALPHA für jeden Wert von Gebietsschema angegeben.

Der Gebietsschemaparameter wird von der entsprechenden GetStringTypeW-Funktion nicht verwendet. Aufgrund des Parameterunterschieds kann eine Anwendung nicht automatisch die richtige ANSI- oder Unicode-Version einer GetStringType* -Funktion durch die Verwendung des #define UNICODE-Schalters aufrufen. Eine Anwendung kann diese Einschränkung umgehen, indem sie GetStringTypeEx verwendet, die empfohlene Funktion.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winnls.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetStringTypeEx

GetStringTypeW

Unterstützung für nationale Sprachen

Nationale Sprachunterstützungsfunktionen