FindResource、LoadResource、LockResource资源相关的编程示例

现在很多的EXE文件都是自带驱动,在程序运行时直接将驱动文件释放出来并加载运行,下面给出一个释放驱动资源的示例函数,今天看到了这样的代码记录下来方便日后拿来使用。使用时只需要修改红色字体部分,改成自己的即可,这里说的是EXE、DLL等文件都可以采用这样的方式来释放。


//释放资源
BOOL Release(){
//查找资源文件
HRSRC res = FindResource(NULL,MAKEINTRESOURCE(IDR_SYS),TEXT("BINARY"));   //实际使用时修改这里即可MAKEINTRESOURCE(IDR_SYS),TEXT("BINARY")
if(!res)
return FALSE;
        
        //加载资源
HGLOBAL resGlobal = LoadResource(NULL,res);
if(!resGlobal)
return FALSE;
        //资源文件大小
DWORD size=SizeofResource(NULL,res);
        //锁定资源
BYTE* ptr=(BYTE*)LockResource(resGlobal);
if(!ptr)
return FALSE;
        //创建文件   实际使用时修改XXX.sys
HANDLE hFile=CreateFile(TEXT("XXX.sys"), GENERIC_WRITE,
0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);


if(hFile==INVALID_HANDLE_VALUE)
return FALSE;


DWORD dw;
        //将资数据写入文件
if(!WriteFile(hFile,ptr,size,&dw,NULL)){
CloseHandle(hFile);
return FALSE;
}
CloseHandle(hFile);
return TRUE;
}

你可能感兴趣的:(FindResource、LoadResource、LockResource资源相关的编程示例)