Как получить текущее название страны в Windows 95, NT 3.51

Я хочу получить текущий код страны для самых старых систем Windows.

Я использовал GetLocaleInfo() с флагом LOCALE_ICOUNTRY. , но затем я понял, что он возвращает неправильные результаты (одинаковые значения для разных стран), поэтому я попробовал LOCALE_SISO3166CTRYNAME, который возвращает код страны в стандартном двухбуквенном коде ISO3166 (например, «США»)

http://www.iso.org/iso/english_country_names_and_code_elements

... работает нормально, но не на самых старых версиях Windows.

Итак, мой вопрос: как получить действительный код страны (идентификатор, имя, что угодно...) в Windows 95/NT 3.51?


person Bartosz Wójcik    schedule 05.01.2010    source источник
comment
Между прочим, для вашего недавнего удаленного вопроса пользователь разместил ссылку на объездные пути. это выглядело полезным. Остальное нет. Надеюсь, это поможет.   -  person sarnold    schedule 22.02.2012


Ответы (1)


Я не совсем уверен, применимо ли это в вашем случае, но в старых (до 1.25A) версиях Win32S была ошибка, из-за которой GetLocaleInfo() возвращал неверную информацию для большинства языков, отличных от США. (См.: w32s125a.txt ).

Я считаю вероятным, что эта ошибка также могла присутствовать в ранних версиях Win95 и NT 3.51.

Мне очень любопытно узнать, почему вы пишете код для таких древних операционных систем!

person Seth    schedule 05.01.2010
comment
Нет, он отлично работает с флагом LOCALE_ICOUNTRY (проверено OSR2), но это не то, что мне нужно, и LOCALE_SISO3166CTRYNAME не поддерживается для этих операционных систем (Майкл Каплан из Microsoft написал об этом в своем блоге blogs.msdn.com/michkap/archive/2005/03/29/403216.aspx). Мне это нужно для моего клиента. - person Bartosz Wójcik; 05.01.2010