Должен ли языковой стандарт Windows быть общесистемным?

Привет всем. Должен ли языковой стандарт Windows (или, скажем, системная кодовая страница, 1252, 936, 950 и т. Д.) Быть общесистемным? Вы знаете, что в Windows 2000 ~ Windows 7 для изменения системной кодовой страницы в Панели управления требуется перезагрузка.

Я хотел бы знать, могу ли я иметь настройку языкового стандарта для сеанса входа в систему или даже настройку языкового стандарта для каждого процесса? Это упростит отладку программы, работающей с другой локалью.

Кстати: я нашел GetCPInfo () Win32 API, но не нашел соответствующего SetCPInfo, вздох.


person Jimm Chen    schedule 04.08.2011    source источник


Ответы (1)


Да, языковой стандарт системы - это вся система, но пользователи и процессы / потоки могут изменять свои собственные языковые стандарты. Локальный поток может быть установлен с помощью SetThreadLocale(). Изменять что-либо еще не входит в компетенцию вашей программы.

person Deanna    schedule 04.08.2011
comment
Спасибо. Мне все еще любопытно, почему Microsoft приняла такое решение, не позволяющее изменять языковой стандарт системы на основе процесса или сеанса входа в систему. Не могли бы вы дать дополнительные объяснения? - person Jimm Chen; 05.08.2011
comment
Потому что это настройка пользователя, а не для вашего приложения. Если вы хотите изменить его, это зависит от потока, как указано выше. - person Deanna; 05.08.2011