Добрый день, у меня проблема при смене языка в приложении. Теперь у меня есть библиотека, которая состоит из нескольких языков, использование WTL :: CAppModule для работы с ресурсами, я пишу следующий код для загрузки DLL:
void Application::LoadResources()
{
m_resModule = ::LoadLibraryEx(_T("Res.dll"), 0, 0);
ATLASSERT(m_resModule);
if (!m_resModule)
{
ATLTRACE(_T("Resources loading failed!\n"));
return;
}
m_theModule.SetResourceInstance(*m_resModule);
}
и функция изменения языка для приложения содержит следующий код:
if(prim_lang)
{
if(Tools::SystemTools::IsVistaOrLater())
SetThreadUILanguage(MAKELANGID(prim_lang, sub_lang));
else
SetThreadLocale(MAKELCID(MAKELANGID(prim_lang, sub_lang), SORT_DEFAULT));
}
все работало нормально, но на Windows XP язык не меняется в целом. Может быть, я неправильно использую функцию SetThreadLocale (MAKELCID (MAKELANGID (prim_lang, sub_lang), SORT_DEFAULT)) ;? Как мне создать многоязычное приложение, могут потребоваться отдельные языки для разных библиотек, а не сохранять все языки в одном и загружать его по выбору пользователя?
Задача ещё не решена.
Других решений пока нет …