Загрузка ресурсов - API vs MFC

Тема в разделе "WASM.WIN32", создана пользователем gorodon, 24 авг 2011.

  1. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Есть две простенькие программы - на Win 32 API и MFC (MS VS6)
    (Хочется интернациализировать обе...)

    В них реализован следующий код (с вариациями):

    Код (Text):
    1. SetThreadLocale(MAKELCID(MAKELANGID(LANG_RUSSIAN, SUBLANG_DEFAULT), SORT_DEFAULT));
    2. //SetThreadLocale(MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT));
    3. HINSTANCE hLL = ::LoadLibraryEx(strFileName,NULL,LOAD_LIBRARY_AS_DATAFILE);
    4. ...
    5. if (::LoadString(hLL, uIDS, lpszBuf, nBufSize))
    6. ...
    И есть подопытный ехе(или длл, не суть...), в котором существуют строковые ресурсы на рус и анг языках (с одинаковыми ID).

    Так вот - программа на Win 32 API загружает строку на том языке, который выставляется функцией SetThreadLocale, а
    программа на MFC, бяка такая, упорно грузит только английские ресурсы... :-(

    Вопрос - как заставить MFC-ю прогу грузить ресурсы нужного языка? (посоветуйте техники, совместимые с ОС 2000-2008).
     
  2. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    http://www.wasm.ru/forum/viewtopic.php?id=36732
     
  3. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Ezrah, спасибо за ссылку... но интересно, почему же все-таки MFC-я прога не грузит нужные строки... ?
    придется , видимо, делать отдельную dll, содержащую ТОЛЬКО русские ресурсы, и загружать ее при выборе пользователем русского языка... - такой вариант прокатывает...
     
  4. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Видимо потому что SetThreadLocale