LocaleNameToLCID-Funktion (winnls.h)
Konvertiert einen Gebietsschemanamen in einen Gebietsschemabezeichner.
Syntax
LCID LocaleNameToLCID(
[in] LPCWSTR lpName,
[in] DWORD dwFlags
);
Parameter
[in] lpName
Zeiger auf eine NULL-beendete Zeichenfolge, die einen Gebietsschemanamen oder einen der folgenden vordefinierten Werte darstellt.
[in] dwFlags
Vor Windows 7:Reserviert; sollte immer 0 sein.
Ab Windows 7: Kann auf LOCALE_ALLOW_NEUTRAL_NAMES festgelegt werden, um die Rückgabe einer neutralen LCID zu ermöglichen.
Rückgabewert
Bei erfolgreicher Ausführung wird der Gebietsschemabezeichner zurückgegeben, der dem Gebietsschemanamen entspricht.
Wenn der angegebene Gebietsschemaname einem benutzerdefinierten Gebietsschema entspricht, das dem Benutzerstandard entspricht, gibt diese Funktion LOCALE_CUSTOM_DEFAULT zurück.
Wenn der Gebietsschemaname einem benutzerdefinierten Gebietsschema entspricht, das nicht der Benutzerstandard ist, ein vorübergehendes Gebietsschema ist oder ein CLDR-Gebietsschema (Unicode Common Locale Data Repository) ist, gibt die Funktion LOCALE_CUSTOM_UNSPECIFIED zurück.
Die Funktion gibt 0 zurück, wenn sie nicht erfolgreich ist. Um erweiterte Fehlerinformationen abzurufen, kann die Anwendung GetLastError aufrufen, die ERROR_INVALID_PARAMETER zurückgeben kann, wenn einer der Parameterwerte ungültig ist.
Hinweise
Bei benutzerdefinierten Gebietsschemas, einschließlich der von Microsoft erstellten, sollten Ihre Anwendungen Gebietsschemanamen vor Gebietsschemabezeichnern bevorzugen. Weitere Informationen finden Sie unter Die Veraltetkeit von LCIDs .
Ab Windows 8: Wenn Ihre App Sprachtags aus dem Windows.Globalization-Namespace an diese Funktion übergibt, muss sie zuerst die Tags konvertieren, indem ResolveLocaleName aufgerufen wird.
Beispiele
#include "stdafx.h"
#include "windows.h"
#include "stdio.h"
int _cdecl main(
int argc,
char *argv[])
{
WCHAR strNameBuffer[LOCALE_NAME_MAX_LENGTH];
DWORD error = ERROR_SUCCESS;
LCID lcid;
// Get the name for locale 0x10407 (German (German), with phonebook sort)
if (LCIDToLocaleName(0x10407, strNameBuffer, LOCALE_NAME_MAX_LENGTH, 0) == 0)
{
// There was an error
error = GetLastError();
}
else
{
// Success, display the locale name we found
wprintf(L"Locale Name for 0x10407 is %s\n", strNameBuffer);
}
// Get the LCID for the locale
lcid = LocaleNameToLCID(strNameBuffer, 0);
if (lcid == 0)
{
// There was an error
error = GetLastError();
}
else
{
// Success, print the round trip LCID
wprintf(L"LCID for %s is 0x%x\n", strNameBuffer, lcid);
}
}
/* This code example produces the following output:
Locale Name for 0x10407 is de-DE_phoneb
LCID for de-DE_phoneb is 0x10407
*/
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | winnls.h (einschließlich Windows.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |
Siehe auch
NLS: Beispiel für namenbasierte APIs