我正在开发一个根据操作系统语言显示对话框的应用程序。如何使用C ++或Windows API(Windows 2008 / Vista / 7)获取操作系统语言?
答案 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
中没有内存分配。