4

このコードを使用して、埋め込みリソース (ビットマップ イメージ) を読み込みます

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") ); を配置します。

4

1 に答える 1

3

CreateFile()WriteFile()、およびCloseHandle()

WriteFile()ポインタとサイズを取るので、ロックされたリソースから直接書き込むことができます。

于 2012-04-30T13:49:15.273 に答える