2009-07-02 4 views
6

Как создать встроенный ресурс, а затем получить доступ к нему из C++?Встраиваемый ресурс в C++

Любой пример о том, как читать ресурс, будет отличным.

Я использую Visual Studio 2005.

Спасибо заранее.

Редактировать: Я хочу поместить один файл xsd, который требуется при проверке схемы полученного XML-файла.

ответ

9

Я делаю @Sharptooth объяснено выше и использовать следующий код для получения ресурса,

HRSRC hResInfo = FindResource(hInstance, MAKEINTRESOURCE(resourceId), type); 
HGLOBAL hRes = LoadResource(hInstance, hResInfo); 
LPVOID memRes = LockResource(hRes); 
DWORD sizeRes = SizeofResource(hInstance, hResInfo); 

Здесь вы должны изменить resourceId и type.

Например, для .png-файла я использую FindResource(hInstance, MAKEINTRESOURCE(bitmapId), _T("PNG")); (строка «PNG» - это тип, который вы использовали при добавлении настраиваемого ресурса).

+0

Как вы получаете дескриптор dll во время выполнения? – Gilad

+0

Можете ли вы проверить, помогает ли этот вопрос «Как я могу получить HINSTANCE из DLL?» http://stackoverflow.com/questions/2126657/how-can-i-get-hinstance-from-a-dll#2126689 – Ismael

3

Добавить ресурс (.rc) в проект, поместите здесь описание ресурса. При создании проекта компилятор ресурсов будет компилировать файл ресурсов, и компоновщик свяжет скомпилированный файл ресурсов в результирующий исполняемый модуль.

В режиме исполнения вызова FindResource(), а затем функции LoadResource() WinAPI.

Смежные вопросы