Могу ли я обратиться к ресурсу, как к внешнему файлу?
Есть файл ресурсов, допустим picture PNG picture.png.
Я его преобразую в .res командой windres res.rc -O coff -o picture.res
(Файл picture.png находится в одной папке с res.rc)
Потом компилирую .exe, включая его.
Могу ли я как-то к нему обратиться в коде .exe с помощью ifstream?
Ответы (1 шт):
Автор решения: Niobium
→ Ссылка
Я нашёл способ получить байты файла ресурса:
HMODULE module = GetModuleHandle(nullptr);
HRSRC resInfo = FindResourceW(module, resName /*Имя ресурса*/, RT_RCDATA);
if (resInfo == nullptr) wcout << L"Error open res!" << endl;
HGLOBAL resBytes = LoadResource(module, resInfo);
LPVOID lock = LockResource(resBytes);
DWORD size = SizeofResource(module, resInfo);
vector<BYTE> bytes(size);
memcpy(bytes.data(), lock, size);
ofstream out;
out.open(fileName, ios::binary);
unsigned __int64 ii = 0;
unsigned __int64 &i = ii;
while (i < size(data)) {
out << data[i];
i++;
}
out.close();