我需要把程序内部的自定义资源数据输出为一个文件,请问该怎么写?最好是写出一个函数。

解决方案 »

  1.   

    res2file (MAKEINTRESOURCE(IDR_EXESOR),"EXE","C:\\1.exe");int  res2file(LPCTSTR lpName,LPCTSTR lpType,LPCTSTR filename)
    {
    //输入:lpName 为资源名,可用MAKEINTRESOURCE()宏将整型变为字符串。
    //LpType  为串类型名
    //Filename  为释放出的文件名。
    //输出:成功1,失败0
    HRSRC myres = FindResource (NULL,lpName,lpType);
    HGLOBAL gl = LoadResource (NULL,myres);
    LPVOID lp = LockResource(gl);//返回指向资源内存的地址的指针。
    // CREATE_ALWAYS为不管文件存不存在都产生新文件。
    HANDLE fp = CreateFile(filename ,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL); if (!fp)
    return false;
    DWORD a;
    //sizeofResource 得到资源文件的大小
    if(!WriteFile (fp,lp,SizeofResource(NULL,myres),&a,NULL)) 
    return false;
    CloseHandle(fp);
    FreeResource(gl);
    return true;
    }