Файл ресурса не загружается для DLL - PullRequest
0 голосов
/ 14 января 2019

Мой код для загрузки файла с ресурса приведен ниже

    void LoadFileInResource(int name, int type, DWORD& size, const char*& data)
{
    HMODULE handle = ::GetModuleHandle(NULL);
    HRSRC rc = ::FindResource(handle, MAKEINTRESOURCE(name),MAKEINTRESOURCE(type));
    HGLOBAL rcData = ::LoadResource(handle, rc);
    size = ::SizeofResource(handle, rc);
    data = static_cast<const char*>(::LockResource(rcData));
}

Этот код отлично работает, если это просто приложение. Когда тот же код используется в качестве DLL, я получаю нулевое значение в rc, который публикует FindResource.

Я определил символы в находчивом файле, как показано ниже:

#define TEXTFILE        256
#define IDR_MYTEXTFILE  105

Также файл, который мне нужно добавить, определен в файле rc:

IDR_MYTEXTFILE TEXTFILE "C:/Docs/Lib.XML"

Как я упоминал ранее, этот код прекрасно работает, когда его приложение, преобразование его в DLL создает проблему.

Функция LoadFileInResource вызывается, как указано ниже:

LoadFileInResource(IDR_MYTEXTFILE, TEXTFILE, size, data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...