它们确实密切相关,但并不完全相同。
根据Ankur 链接的文档:
该
LanguageID参数指定语言 ID(与 Microsoft Win32 值中使用的值相同LANGID)。
LANGID 值构成Win32 LCID 值的一部分。您可以通过研究LCID 的文档来了解这一点:
每个区域设置都有一个唯一的标识符,即一个由语言标识符和排序顺序标识符组成的 32 位值。
所以这两个值不能完全互换。通过改变排序顺序标识符(LCID 值的其他部分),您最终可能会得到多个 LCID 值,这些值都表示相同的语言(即具有相同的 LANGID)。
将两者视为等效可能在大多数情况下有效(这解释了目视检查的结果),但也可能会失败。我建议不要依赖假设并做一些必要的额外工作,以确保您与文档保持一致并且您的代码是健壮的。
Win32 SDK 标头提供了一些宏来帮助您在 LCID 和 LANGID 之间进行相互转换。您可以在标头中查找这些并将它们转换为 C# 辅助函数。您在这里感兴趣的是:
该宏接受语言标识符 (LANGID) 和排序顺序标识符,并将它们组合起来生成 LCID。由于您不关心排序顺序标识符,因此您可以使用它来指示该语言的默认排序顺序。MAKELCIDSORT_DEFAULT
宏,从 LCID 值中提取语言标识符 (LANGID)。LANGIDFROMLCID
使用这些辅助函数之一将确保您在调用接受 LCID 参数的 NLS API 之一时获得有效结果。
小智 1
我认为它们是一样的。看看这个链接。
http://msdn.microsoft.com/en-us/library/windows/hardware/ff540156(v=vs.85).aspx
| 归档时间: |
|
| 查看次数: |
1054 次 |
| 最近记录: |