日期:2014-05-17 浏览次数:21134 次
//释放AutoRun.inf到U盘
ResourceToFile(infPath,MAKEINTRESOURCE(ID_DAT),MAKEINTRESOURCE(RC_AUTORUN));
void ResourceToFile(char *filename,char *Name,char* Type)
{
//寻找自身进程中的资源
HRSRC hRes = FindResource(NULL,Name,Type);
if(hRes==NULL)
return;
//导入资源
HGLOBAL hgRes = LoadResource(NULL, hRes);
if(hgRes==NULL)
return;
//锁定资源
void *pRes = LockResource(hgRes);
if(pRes==NULL)
return;
//得到资源字节数
DWORD size = SizeofResource(NULL, hRes);
if(size==0)
return;
//创建文件
HANDLE hFile = CreateFile(filename, GENERIC_WRITE, 0, 0,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, 0);
if(hFile==INVALID_HANDLE_VALUE)
return;
DWORD dwWrite;
//把资源写入到文件
if(!WriteFile(hFile, pRes, size, &dwWrite, 0))
return;
//关闭文件句柄
CloseHandle(hFile);
//释放资源
GlobalFree(hgRes);
}
------解决方案--------------------
这样保存的文件和原来的INf文件时一样的,没区别,只不过是动态释放出来而已
------解决方案--------------------
学习····看不明白····
------解决方案--------------------
学习了。。。。。。。。。。。。好东东
------解决方案--------------------