Я использую этот код для загрузки встроенных ресурсов (растровые изображения)Сохранить внедренный ресурс в файловой системе
HRSRC hResInfo = ::FindResource(hInstance, MAKEINTRESOURCE(resourceId), RT_BITMAP);
HGLOBAL hRes = ::LoadResource(hInstance, hResInfo);
LPVOID memRes = ::LockResource(hRes);
DWORD sizeRes = ::SizeofResource(hInstance, hResInfo);
Он работает отлично.
Как я могу сохранить его в файле C: \ image.bmp?
Этот код создает только пустой файл:
HANDLE hFile = ::CreateFile(L"C:\\image.bmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwWritten = 0;
::WriteFile(hFile, memRes, sizeRes, &dwWritten, NULL);
::CloseHandle(hFile);
РЕШЕНИЕ:
Создание нового типа "BMP" в ресурсах и место изображения
HRSRC hResInfo = FindResource (HINSTANCE, MAKEINTRESOURCE (RESOURCEID), _T ("BMP"));
Вы можете использовать класс CImage или GDI + для получения растрового кодировщика. Более практическая проблема заключается в том, что программы не могут записывать файлы в корневую папку C: без повышения UAC. Это действительно работа для установщика. –
Моя программа работает с повышенными привилегиями – NieAR