如何使用C ++ API获取OS语言?

时间:2010-01-28 09:26:00

标签: c++ winapi windows-7 internationalization

我正在开发一个根据操作系统语言显示对话框的应用程序。如何使用C ++或Windows API(Windows 2008 / Vista / 7)获取操作系统语言?

3 个答案:

答案 0 :(得分:4)

在Windows中有几个功能可以执行此操作,具体取决于您希望信息的格式。在Windows Vista之前,语言信息被编码为LCID(区域设置ID),其中包括语言以及有关的一些信息。排序和格式化。

对于Windows Vista和Windows 7,设计了一个名为Locale Names的更灵活的系统。 GetSystemDefaultLocaleName

如果您想使用Win2k和WinXP,请使用此选项。 GetSystemDefaultLCID

答案 1 :(得分:2)

这个问题的公认答案是错误的。您应该根据默认语言环境做出用户界面决策。请使用GetDefaultUILanguage

答案 2 :(得分:1)

你解决了这个问题吗? 如果答案是否,则 LPWSTR lpLocalName=NULL是错误的。
LPWSTR lpLocalName=NULL ----> WCHAR localName[LOCALE_NAME_MAX_LENGTH]是对的。 因为GetUserDefaultLocalName中没有内存分配。