我有表示语言环境的字符串数据,例如“fr”或“en”。我需要将其转换为适当的LCID值,例如0x80c
或0x409
。有功能或宏吗?
我在Windows 7上使用C++。
最佳答案
这些是LCID值,不确定LID是什么意思。您可以从Vista和更高版本中可用的GetLocaleInfoEx()中获取它们。您需要传递一个诸如“en-US”之类的语言环境名称,这是确定语言语言环境所必需的。例如:
#include "stdafx.h"
#include <windows.h>
#include <assert.h>
int _tmain(int argc, _TCHAR* argv[])
{
LCID lcid = 0;
BOOL ok = GetLocaleInfoEx(L"en-US", LOCALE_RETURN_NUMBER | LOCALE_ILANGUAGE, (LPWSTR)&lcid, sizeof(lcid));
assert(ok);
wprintf(L"LCID = %04x\n", lcid);
return 0;
}
输出:LCID = 0409
关于c++ - Windows:从语言环境字符串获取LCID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3240556/