В диалоговом окне «Добавить ресурс» нажмите «Импорт», выберите «Все файлы (. )», чтобы можно было импортировать файл любого типа, а затем просто выберите нужный файл.Когда появится диалоговое окно «Тип настраиваемого ресурса», введите RCDATA в поле «Тип ресурса».
Если вы откроете файл .rc, вы увидите что-то вроде этого:
/////////////////////////////////////////////////////////////////////////////
//
// RCDATA
//
IDR_RCDATA1 RCDATA "myfile.whatever"
и он сгенерируетresource.h со следующей строкой:
#define IDR_RCDATA1 101
В коде вы получаете к нему следующий доступ:
#include "resource.h"
#include <windows.h>
int main(int argc, char* argv[])
{
HRSRC myResource = ::FindResource(NULL, MAKEINTRESOURCE(IDR_RCDATA1), RT_RCDATA);
HGLOBAL myResourceData = ::LoadResource(NULL, myResource);
void* pMyBinaryData = ::LockResource(myResourceData);
return 0;
}
, где pMyBinaryData - указатель на первый байт этого исполняемого файла.Для получения дополнительной информации посетите Функции ресурсов
Вот пример того, как вы должны сохранить двоичный ресурс, подобный этому, на диске:
#include "resource.h"
#include <windows.h>
#include <fstream>
int main(int argc, char* argv[])
{
HRSRC myResource = ::FindResource(NULL, MAKEINTRESOURCE(IDR_RCDATA1), RT_RCDATA);
unsigned int myResourceSize = ::SizeofResource(NULL, myResource);
HGLOBAL myResourceData = ::LoadResource(NULL, myResource);
void* pMyBinaryData = ::LockResource(myResourceData);
std::ofstream f("C:\\x.bin", std::ios::out | std::ios::binary);
f.write((char*)pMyBinaryData, myResourceSize);
f.close();
return 0;
}
Когда вы создаете проект с таким ресурсом,этот ресурс станет частью вашей программы (dll).