想把一个资源文件以二进制方式写在硬盘上,代码如下:
HRSRC hRsrc = FindResource(NULL, MAKEINTRESOURCE(IDR_MY1), TEXT("MY1"));
//加载资源
HGLOBAL hGlobal = LoadResource(NULL, hRsrc);
//锁定资源
LPVOID pBuffer = LockResource(hGlobal); //此处锁定的资源后面需要释放吗?//下面该如何处理呢??? 如何将锁定的资源写入硬盘上的文件中FILE *p_myfile; //生成的二进制文件指针
Cstring file_path = c:\\myfile.bin;
p_myfile = fopen(file_path,"wb"); //写入文件
fwrite(要写的内容,1,一次写入的长度,p_myfile);
fclose(p_myfile);
HRSRC hRsrc = FindResource(NULL, MAKEINTRESOURCE(IDR_MY1), TEXT("MY1"));
//加载资源
HGLOBAL hGlobal = LoadResource(NULL, hRsrc);
//锁定资源
LPVOID pBuffer = LockResource(hGlobal); //此处锁定的资源后面需要释放吗?//下面该如何处理呢??? 如何将锁定的资源写入硬盘上的文件中FILE *p_myfile; //生成的二进制文件指针
Cstring file_path = c:\\myfile.bin;
p_myfile = fopen(file_path,"wb"); //写入文件
fwrite(要写的内容,1,一次写入的长度,p_myfile);
fclose(p_myfile);
try
{
HINSTANCE ghInstApp = AfxGetInstanceHandle();
HRSRC hRsrc = FindResource(ghInstApp, MAKEINTRESOURCE(IDR_MY1),"MY1");
ASSERT(hRsrc);
DWORD len = SizeofResource(ghInstApp,hRsrc);
ASSERT(len);
HGLOBAL hGlobal = LoadResource(ghInstApp,hRsrc); CFile file(fileName, CFile::modeCreate | CFile::modeWrite);
file.Write(hGlobal,len);
file.Close();
}
catch(...)
{
}
LPVOID pBuffer = LockResource(hGlobal);
file.Write(pBuffer,len);
再补充下,别忘了::UnlockResource(hGlobal);