Изменение LOCALE_SISO639LANGNAME для LOCALE_USER_DEFAULT - PullRequest
2 голосов
/ 22 сентября 2011

Есть ли способ изменить "LOCALE_SISO639LANGNAME" во время выполнения?Я хотел бы установить другой язык для «LOCALE_SISO639LANGNAME» во время выполнения, и при запросе «GetLocaleInfo» это должен быть новый язык, а не системный по умолчанию.Кстати, кажется, вы не можете установить «LOCALE_SISO639LANGNAME» с помощью «SetLocaleInfo».Заранее благодарим за заботу.

1 Ответ

0 голосов
/ 27 сентября 2011

LOCALE_SISO639LANGNAME - это константа (C ++ #define), поэтому вы не можете изменить ее во время выполнения.Если я вас правильно понимаю, вы хотите заменить вызовы GetLocaleInfo на это значение в качестве первого аргумента, чтобы эффективно передавать в API другой аргумент.

Не было бы большой проблемы, если бы все это было в вашем коде(редактирование кода и перестройка двоичного кода действительно могли бы сделать эту работу), и я могу предположить, что вы хотите, чтобы это имело эффект для того, что вы имеете только в двоичном виде.

При условии, что приведенные выше догадки верны, и, особенно, если вы хотите, чтобы они использовались только для вашего процесса, вы можете подключить точку входа GetLocaleInfo и исправить ее, чтобы перехватить вызов и обновить аргументы.Это не что-то простое или безопасное в использовании, вам придется понять, что вы делаете.

...