In Add Resource dialog click Import, select "All Files (.)" so that it allows you to import file of any type, and then just select the file you want there. When Custom Resource Type dialog pops up, type RCDATA into "Resource type" field.
If you open .rc file, you will see something like this:
/////////////////////////////////////////////////////////////////////////////
//
// RCDATA
//
IDR_RCDATA1 RCDATA "myfile.whatever"
and it will generate resource.h with following line:
#define IDR_RCDATA1 101
In code you access it like this:
#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;
}
where pMyBinaryData is pointer to first byte of this executable. For more information visit
Resource Functions
Here's an example how you would save binary resource like this on disk:
#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;
}
When you build project with resource like that, this resource will become part of your program (dll).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…