日期:2014-05-17 浏览次数:21138 次
//释放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文件时一样的,没区别,只不过是动态释放出来而已
------解决方案--------------------
学习····看不明白····
------解决方案--------------------
学习了。。。。。。。。。。。。好东东
------解决方案--------------------