Freigeben über


C6400

Aktualisiert: November 2007

C6400

Warnung C6400: Verwendung von <Funktionsname> für einen Vergleich mit der Konstantenzeichenfolge <Zeichenfolgenname> ohne Berücksichtigung von Groß- und Kleinschreibung. Führt bei nicht englischen Gebietsschemas zu unerwarteten Ergebnissen.

Diese Warnung weist darauf hin, dass ein Vergleich mit einer Konstantenzeichenfolge ohne Berücksichtigung von Groß- und Kleinschreibung abhängig vom Gebietsschema durchgeführt wurde, wobei anscheinend ein Vergleich unabhängig vom Gebietsschema beabsichtigt war.

Dieser Fehler hat typischerweise ein fehlerhaftes Verhalten bei nicht englischen Gebietsschemas zur Folge. So stimmt in Türkisch ".gif" nicht mit ".GIF" überein, und in Vietnamesisch stimmt "LogIn" nicht mit "LOGIN" überein.

Führen Sie Zeichenfolgenvergleiche am besten mit der CompareString-Funktion aus. Um unter Windows XP einen Vergleich unabhängig vom Gebietsschema durchführen zu können, sollte es sich bei dem ersten Parameter um die LOCALE_INVARIANT-Konstante handeln.

Beispiel

Der folgende Code generiert diese Warnung:

#include <windows.h>
int f(char *ext)
{
  // code...
  return (lstrcmpi(ext, TEXT("gif")) == 0);
}

Um diese Warnung zu korrigieren, führen Sie mithilfe des folgenden Codes einen Test unabhängig vom Gebietsschema und ohne Berücksichtigung von Groß- und Kleinschreibung dahingehend aus, ob char *ext mit "gif" entspricht:

#include <windows.h>
int f(char *ext)
{
  // code...
  return (CompareString(
                        LOCALE_INVARIANT,
                        NORM_IGNORECASE, 
                        ext,
                        -1,
                        TEXT ("gif"),
                        -1) == CSTR_EQUAL);
}

Siehe auch

Referenz

CompareString