Share via


CompareString-Funktion (winnls.h)

Vergleicht zwei Zeichenfolgen für ein durch den Bezeichner angegebenes Gebietsschema .

Vorsicht Die falsche Verwendung von CompareString kann die Sicherheit Ihrer Anwendung beeinträchtigen. Zeichenfolgen, die nicht ordnungsgemäß verglichen werden, können ungültige Eingaben erzeugen. Beispielsweise kann die Funktion Sicherheitsprobleme auslösen, wenn sie für einen nicht-linguistischen Vergleich verwendet wird, da zwei Zeichenfolgen, die sich in ihrer binären Darstellung unterscheiden, linguistisch gleichwertig sein können. Die Anwendung sollte Zeichenfolgen vor ihrer Verwendung auf Gültigkeit testen und Fehlerhandler bereitstellen. Weitere Informationen finden Sie unter Sicherheitsüberlegungen: Internationale Features.
 
Hinweis Aus Gründen der Kompatibilität mit Unicode sollten Ihre Anwendungen CompareStringEx oder die Unicode-Version von CompareString bevorzugen. Ein weiterer Grund für die Bevorzugung von CompareStringEx ist, dass Microsoft aus Gründen der Interoperabilität zur Verwendung von Gebietsschemanamen anstelle von Gebietsschemabezeichnern für neue Gebietsschemas migriert. Jede Anwendung, die nur unter Windows Vista und höher ausgeführt wird, sollte CompareStringEx verwenden.
 

Syntax

int CompareString(
  [in] LCID    Locale,
  [in] DWORD   dwCmpFlags,
  [in] LPCTSTR lpString1,
  [in] int     cchCount1,
  [in] LPCTSTR lpString2,
  [in] int     cchCount2
);

Parameter

[in] Locale

Gebietsschemabezeichner des gebietsschemas, das für den Vergleich verwendet wird. Sie können das MAKELCID-Makro verwenden, um einen Gebietsschemabezeichner zu erstellen oder einen der folgenden vordefinierten Werte zu verwenden.

[in] dwCmpFlags

Flags, die angeben, wie die Funktion die beiden Zeichenfolgen vergleicht. Ausführliche Definitionen finden Sie im dwCmpFlags-Parameter von CompareStringEx.

[in] lpString1

Zeiger auf die erste zu vergleichende Zeichenfolge.

[in] cchCount1

Länge der durch lpString1 angegebenen Zeichenfolge, mit Ausnahme des abschließenden NULL-Zeichens. Dieser Wert stellt Bytes für die ANSI-Version der Funktion und Breitzeichen für die Unicode-Version dar. Die Anwendung kann einen negativen Wert angeben, wenn die Zeichenfolge NULL-beendet ist. In diesem Fall bestimmt die Funktion automatisch die Länge.

[in] lpString2

Zeiger auf die zweite zu vergleichende Zeichenfolge.

[in] cchCount2

Länge der durch lpString2 angegebenen Zeichenfolge, mit Ausnahme des abschließenden NULL-Zeichens. Dieser Wert stellt Bytes für die ANSI-Version der Funktion und Breitzeichen für die Unicode-Version dar. Die Anwendung kann einen negativen Wert angeben, wenn die Zeichenfolge NULL-beendet ist. In diesem Fall bestimmt die Funktion automatisch die Länge.

Rückgabewert

Gibt die für CompareStringEx beschriebenen Werte zurück.

Hinweise

Weitere Informationen finden Sie unter Hinweise zu CompareStringEx.

Wenn Ihre Anwendung die ANSI-Version von CompareString aufruft, konvertiert die Funktion Parameter über die Standardcodepage des angegebenen Gebietsschemas. Daher kann eine Anwendung niemals CompareString verwenden, um UTF-8-Text zu verarbeiten.

Normalerweise ordnet CompareString bei Vergleichen ohne Berücksichtigung der Groß-/Kleinschreibung das Kleinbuchstabe "i" dem Großbuchstaben "I" zu, auch wenn das Gebietsschema türkisch oder aserbaidschanisch ist. Die NORM_LINGUISTIC_CASING Flagge setzt dieses Verhalten für Türkisch oder Aserbaidschanisch außer Kraft. Wenn diese Kennzeichnung in Verbindung mit türkisch oder aserbaidschanisch angegeben wird, ist LATIN SMALL LETTER DOTLESS I (U+0131) die Kleinbuchstaben von LATIN CAPITAL LETTER I (U+0049) und LATIN SMALL LETTER I (U+0069) ist die Kleinbuchstabenform von LATIN CAPITAL LETTER I WITH DOT ABOVE (U+0130).

Ab Windows 8: Die ANSI-Version der Funktion wird in Winnls.h und die Unicode-Version in Stringapiset.h deklariert. Vor Windows 8 wurden beide Versionen in Winnls.h deklariert.

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 (windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CompareStringEx

Behandeln der Sortierung in Ihren Anwendungen

Unterstützung für landessprachliche Sprachen

Unterstützungsfunktionen für nationalsprachliche Sprachen

Sicherheitsüberlegungen: Internationale Features

Verwenden der Unicode-Normalisierung zum Darstellen von Zeichenfolgen