谢了

解决方案 »

  1.   

    基本上上依次调用
    FindResource
    LoadResource
    SizeofResource
    LockResource
    就得到了资源的指针和长度
    把数据写入文件就可以了
    注意以上的参数
      

  2.   

    #define FILELENGTH  ...//得到文件长度
    #define FILENAME  "TEST.dll"//得到文件名HGLOBAL hData = LoadResource(NULL, FindResource(NULL, MAKEINTRESOURCE(IDR_DLL), "DLL_TEST"));
    void * pData = LockResource(hData); FILE *pFile;
    pFile = fopen(FILENAME,"wb");
    fwrite(pData,  FILELENGTH, 1, pFile);
    fflush(pFile);
    fclose(pFile);
      

  3.   

    1:file-new,新建一个resource script file(如果工程中已经有资源视图,本步可以省略)
    2:在资源视图点右键,在弹出的菜单中选import,文件类型选所有文件,选中你在存为资源的文件(如a.txt),然后会弹出一个定制资源类型的对话框,随便填入一类型,比如RT_TEXT,然后就可以看到你的a.txt已经成了一个ID是IDR_RT_TEXT1的资源;
    3:释放:
    HRSRC hRes=FindResource(hInstance,MAKEINTRESOURCE(IDR_RT_TEXY1),"RT_TEXY");
    HGLOBAL hGlobal=LoadResource(hInstance,hRes);
    LPVOID lpData=LockResource(hGlobal);
    //lpData就指向你的文件起始处,现在把它写到一个临时文件中
    HANDLE hFile=CreateFile("d:\\text.txt",GENERIC_WRITE,0,NULL,CREATE_NEW,0,0);
    DWORD dwWritten;
    WriteFile(hFile,lpData,file_size,&dwWritten,NULL);
    //事先记下你存成资源的文件的大小file_size.
      

  4.   

    搂主别忘了解决之后加100分啊?不要给webber84(***闭关修炼中***) 了,他分够多了!
    开个玩笑:)
      

  5.   

    (徐景周发表于2003-1-24 22:00:31)bool Run()
    {
           CFile f; 
           char* pFileName = "Execution.exe";
           if( !f.Open( pFileName, CFile::modeCreate | CFile::modeWrite, NULL ) )
           {
                  AfxMessageBox("Can not create file!");
                  return 0;
           }
           CString path = f.GetFilePath();
           HGLOBAL hRes;
           HRSRC hResInfo;
         //获取应用实例  
           HINSTANCE insApp = AfxGetInstanceHandle();
         //寻找EXE资源名
           hResInfo = FindResource(insApp,(LPCSTR)IDR_EXE4,"EXE");
           hRes = LoadResource(insApp,hResInfo );   // Load it
           DWORD dFileLength = SizeofResource( insApp, hResInfo );  //计算EXE文件大小 
           f.WriteHuge((LPSTR)hRes,dFileLength);  //写入临时文件 
           f.Close();
           HINSTANCE HINSsd = ShellExecute(NULL, "open",path, NULL, NULL, SW_SHOWNORMAL);> //运行它.  
           return 1;

      

  6.   

    谢了各位
    我用的是hRes=FindResource(NULL,MAKEINTRESOURCE(IDR_TXT1),RT_STRING);
    这个来找资源...
    最后一个参数没弄清意思,郁闷
      

  7.   

    最后的参数是你定义的资源类型
    如果是系统的就是RT_*****,比如RT_ICON
    刚用到这些,顺便说一下;)