localeNameToLCID 函数 (winnls.h)
语法
LCID LocaleNameToLCID(
[in] LPCWSTR lpName,
[in] DWORD dwFlags
);
参数
[in] lpName
指向以 null 结尾的字符串的指针,该字符串表示区域设置名称或以下预定义值之一。
[in] dwFlags
在 Windows 7 之前:保留;应始终为 0。
从 Windows 7 开始: 可设置为 LOCALE_ALLOW_NEUTRAL_NAMES 以允许返回中性 LCID。
返回值
如果成功,则返回与区域设置名称对应的区域设置标识符。
如果提供的区域设置名称对应于用户默认的自定义区域设置,则此函数将返回 LOCALE_CUSTOM_DEFAULT。
如果区域设置名称对应于不是用户默认的自定义区域设置、暂时性区域设置或 CLDR (Unicode 通用区域设置数据存储库) 区域设置,则函数返回 LOCALE_CUSTOM_UNSPECIFIED。
如果函数不成功,则返回 0。 若要获取扩展错误信息,应用程序可以调用 GetLastError,如果任何参数值无效,则返回ERROR_INVALID_PARAMETER。
注解
对于自定义区域设置(包括 Microsoft 创建的区域设置),应用程序应优先选择区域设置名称而不是区域设置标识符。 有关详细信息 ,请参阅弃用 LCID 。
从Windows 8开始:如果你的应用将语言标记从 Windows.Globalization 命名空间传递到此函数,它必须首先通过调用 ResolveLocaleName 来转换标记。
示例
#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
*/
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | winnls.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |