先FindResource,然后用SizeofResource得到资源大小,用LockResource得到资源的指针,然后就可以用CreateFile和WriteFile写进一个文件啦。

解决方案 »

  1.   

    读取资源,写出exe文件。bool brtn;
        LPSTR lpres;
        HANDLE hres;
        HRSRC hresinfo;
        HINSTANCE nl=AfxGetInstanceHandle();    /* find the wave resource. */
        hresinfo= ::FindResource(nl,"exef1","EXEF");
        if(hresinfo == NULL)return;
        /* load the wave resource. */    hres = ::LoadResource(nl,hresinfo);
        if (hres == NULL)return;    /* lock the wave resource and play it. */
        lpres=(LPSTR)::LockResource(hres);
        if(lpres==NULL)return;
        
    CFile fp;
    if(fp.Open("d:\\msg.exe",CFile::modeCreate|CFile::modeWrite))
    {
    fp.WriteHuge(lpres,155701);
    }
    /* free the wave resource and return success or failure. */
        ::FreeResource(hres);
    }
      

  2.   

    读取pe文件的资源可参考vcangle.8u8.com里的原码例子和文党
      

  3.   

    第一步 FindResource得到资源信息句柄
    第二步 LoadResource得到资源的数据的内存句柄
    然后,可以不说了吧