我有表示语言环境的字符串数据,例如“fr”或“en”。我需要将其转换为适当的LCID值,例如0x80c0x409。有功能或宏吗?

我在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/

10-09 01:34