首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows地区ID (LCID)是否与USB语言ID相同?

Windows地区ID (LCID)是否与USB语言ID相同?
EN

Stack Overflow用户
提问于 2013-03-15 05:51:00
回答 2查看 1.3K关注 0票数 6

我正在C#中开发一个工具,它允许用户为USB设备配置USB字符串描述符。字符串描述符之一是语言ID,我希望UI显示语言名称列表,而不是神秘的语言ID。我找不到任何API来给我USB {语言ID -语言名称}映射。

当我查看Windows ( LCID )时,LCID和usb语言ID似乎是相同的(根据我比较过的几个条目推断)。

所以,我的问题是

  1. LCID和USB语言ID相同吗?
  2. 如果是(1),在使用它时是否有任何缺陷?
EN

回答 2

Stack Overflow用户

发布于 2013-03-15 08:54:10

它们确实是密切相关的,但它们并不完全相同。

根据Ankur所链接的文件

LanguageID参数指定语言ID (与Microsoft Win32 LANGID值中使用的值相同)。

LANGID值构成Win32 LCID值的一部分。通过研究LCID文档,你可以看到这一点。

每个语言环境都有一个唯一的标识符,一个由语言标识符和排序顺序标识符组成的32位值。

因此,这两个值不是完全可互换的。通过更改排序顺序标识符( LCID值的另一部分),您可以得到多个LCID值,它们都表示相同的语言(即,具有相同的LANGID)。

将两者视为等价物可能会在大多数时间起作用(这就解释了视觉检查的结果),但它也可能会失效。我建议不要依赖于假设,并做一些额外的工作,以确保您与文档一致,您的代码是健壮的。

Win32 SDK提供了一些宏来帮助您在LCID和LANGID之间进行相互转换。您可以在头文件中查找这些文件,并将它们转换为C#助手函数。你在这里感兴趣的是:

  • 麦凯希接受语言标识符(LANGID)和排序顺序标识符,并将它们组合起来生成LCID。由于您不关心排序顺序标识符,因此可以为此使用SORT_DEFAULT来指示该语言的默认排序顺序。
  • 兰格弗罗,它从LCID值中提取语言标识符(LANGID)。

使用这些帮助函数之一将确保在调用接受LCID参数的NLS时获得有效的结果。

票数 4
EN

Stack Overflow用户

发布于 2013-03-15 06:04:10

我想他们是一样的。看看这个链接。

http://msdn.microsoft.com/en-us/library/windows/hardware/ff540156(v=vs.85).aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15425673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档