Возникли пару вопросов по использованию ф-и GetLocaleInfo https://msdn.microsoft.com/ru-ru/librar ... 01(v=vs.85).aspx
Вопрос №1)
Retrieves information about a locale specified by identifier.
Note For interoperability reasons, the application should prefer the GetLocaleInfoEx function to GetLocaleInfo because Microsoft is migrating toward the use of locale names instead of locale identifiers for new locales. Any application that runs only on Windows Vista and later should use GetLocaleInfoEx.
Как я понял, если приложение, работает только в Vista Windows и позже, то должно использовать :
GetLocaleInfoEx https://msdn.microsoft.com/ru-ru/librar ... 03(v=vs.85).aspx
Note The application should call this function in preference to GetLocaleInfo if designed to run only on Windows Vista and later.
Note This function can retrieve data that changes between releases, for example, due to a custom locale. If your application must persist or transmit data, see Using Persistent Locale Data.
Значит нужно использовать GetLocaleInfo в XP - и позже ? а уже расширенная ф-я GetLocaleInfoEx, если вдруг понадобится, только в Vista и выше? (пока писал сам понял, что именно так и есть)))
В XP и windows7 проверил GetLocaleInfo, работает.
Вопрос №2) Константы.
LOCALE_SENGLISHLANGUAGENAME
Windows 7 and later: English name of the language in English, for example, German for Deutsch, from International ISO Standard 639.
This name is always restricted to characters that can be mapped into the ASCII 127-character subset.
https://msdn.microsoft.com/en-us/librar ... 43(v=vs.85).aspx
LOCALE_SENGLANGUAGE Deprecated for Windows 7 and later. Full English name of the language from ISO Standard 639. See LOCALE_SENGLISHLANGUAGENAME.
https://msdn.microsoft.com/en-us/librar ... 44(v=vs.85).aspx
GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLISHLANGUAGENAME , wszBuf, SIZEOF(wszBuf) )
В XP и windows7 проверил, работает.
GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE, wszBuf, SIZEOF(wszBuf) )
В XP и windows7 проверил, работает.
И даже так:
GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLISHLANGUAGENAME or LOCALE_SENGLANGUAGE, wszBuf, SIZEOF(wszBuf) )
В XP и windows7 проверил, работает.
Планирую оставить так: LOCALE_SENGLISHLANGUAGENAME or LOCALE_SENGLANGUAGE
Возвращает значение wszBuf = Russian
Все правильно?
Жду Ваше мнение.
Просьба протестировать прикреплённый EXE, и если работает правильно указать ответ ф-и OC.