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 Common Locale Data Repository) 地區設定,則函式會傳回 LOCALE_CUSTOM_UNSPECIFIED。
如果函式未成功,則傳回 0。 若要取得延伸的錯誤資訊,應用程式可以呼叫 GetLastError,如果有任何參數值無效,則可以傳回ERROR_INVALID_PARAMETER。
備註
針對自定義地區設定,包括 Microsoft 所建立的地區設定,您的應用程式應該偏好地區設定名稱而非地區設定標識符。 如需詳細資訊,請參閱取代 LCID 。
從 Windows 8 開始:如果您的 app 從 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) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |