Система windows server 2008 rc2
Вызовы
setlocale(LC_ALL,"Rus");
setlocale( LC_ALL, "ru_RU.CP1251" );
std::system("chcp 1251");
не прокатывают
Функция GetACP() (из winnls.h) возвращает 1252, а должна 1251.
Если вручную изменить язык системы
Панель управления - Часы, язык и регион - язык и региональные стандарты - дополнительно - язык программ не поддерживающих юникод.
на русский то
GetACP() возвращает 1251.
Есть ли возможность это сделать?
Можно ли это сделать без подключения не стандартных библиотек?
Ответ
Changing Non-Unicode programmatically to Russian Вам нужна ф-ция NtSetDefaultLocale. Из доступного пользователю интерфейса библиотек Windows наиболее подходит SetLocaleInfo, но по описанию она слишком слабовата будет для Вашей задачи =( P.S. Нашел! Попробуйте SystemParametersInfo с SPI_SETDEFAULTINPUTLANG. Никогда бы не догадался!!!
Комментариев нет:
Отправить комментарий