Freigeben über


CompareStringW-Funktion (stringapiset.h)

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

Vorsicht Die falsche Verwendung von CompareString kann die Sicherheit Ihrer Anwendung gefährden. Zeichenfolgen, die nicht ordnungsgemäß verglichen werden, können ungültige Eingaben erzeugen. Die Funktion kann beispielsweise 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 Ihre 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 Interoperabilitätsgründen 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 CompareStringW(
  [in] LCID                              Locale,
  [in] DWORD                             dwCmpFlags,
  [in] _In_NLS_string_(cchCount1)PCNZWCH lpString1,
  [in] int                               cchCount1,
  [in] _In_NLS_string_(cchCount2)PCNZWCH 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, ohne das endende NULL-Zeichen. 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 die Länge automatisch.

[in] lpString2

Zeiger auf die zweite zu vergleichende Zeichenfolge.

[in] cchCount2

Länge der durch lpString2 angegebenen Zeichenfolge, ohne das endende NULL-Zeichen. 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 die Länge automatisch.

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 CompareString niemals verwenden, um UTF-8-Text zu verarbeiten.

Bei Vergleichen ohne Beachtung der Groß-/Kleinschreibung ordnet CompareString normalerweise das Kleinbuchstaben "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 dieses Flag in Verbindung mit türkisch oder aserbaidschanisch angegeben wird, ist LATIN SMALL LETTER DOTLESS I (U+0131) die Kleinbuchstabenform 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 deklariert, und die Unicode-Version wird 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 stringapiset.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CompareStringEx

Behandeln der Sortierung in Ihren Anwendungen

Unterstützung für nationale Sprachen

Nationale Sprachunterstützungsfunktionen

Sicherheitsüberlegungen: Internationale Features

Verwenden der Unicode-Normalisierung zum Darstellen von Zeichenfolgen