Динамическое чтение спутниковой DLL без изменения GUI с использованием MFC - PullRequest
0 голосов
/ 15 февраля 2019

Итак, у меня есть приложение MFC, у которого есть языковые ресурсы в нескольких файлах сателлитов.

При запуске программы она загружает правильную DLL и устанавливает ее для ресурсов приложения.

Мой вопросМожно ли прочитать, скажем, STRINGTABLE запись из DLL, не устанавливая ее в качестве графического интерфейса?Например, я запускаю приложение на итальянском языке, но по причинам я хочу разрешить шоу показывать некоторую информацию на испанском языке.

Можем ли мы получить доступ к STRINGTABLE спутниковой DLL, не устанавливая ее в качестве графического интерфейса приложения?

1 Ответ

0 голосов
/ 15 февраля 2019

Используйте
CString::LoadString(HINSTANCE hInstance, UINT nID) или
CString::LoadString(HINSTANCE hInstance, UINT nID, WORD wLanguageID).

Пример:

HINSTANCE hinst = LoadLibrary(L"path.dll");

CString str;
if (str.LoadString(hinst, ID_STRING100))
    AfxMessageBox(str);

Вы также можете позвонить AfxSetResourceHandle(hinst) и просто набрать str.LoadString(ID_STRING100).Пример:

AfxSetResourceHandle(hinst);
str.LoadString(ID_STRING100);
...

//reset resource handle:
AfxSetResourceHandle(AfxGetInstanceHandle());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...