将资源中的EXE文件的数据读出写入一个新的文件中。只用WINDOWS单元!
只用API函数。解答完马上开帖给分!

解决方案 »

  1.   

    数据???PE结构的中数据 很杂啊 你要哪部分?
    PE结构很麻烦啊!
      

  2.   

    classes单元里面TResourceStream的代码:
    procedure TResourceStream.Initialize(Instance: THandle; Name, ResType: PChar);
    ……
    begin
      HResInfo := FindResource(Instance, Name, ResType);
      if HResInfo = 0 then Error;
      HGlobal := LoadResource(Instance, HResInfo);
      if HGlobal = 0 then Error;
      SetPointer(LockResource(HGlobal), SizeOfResource(Instance, HResInfo));
    end;
    归纳说:四个win32 API 
    FindResource,(handle)
    LoadResource,(handle for lock)
    SizeODResource,(buffer size)
    LockResource,(pointer)然后再吭哧吭哧地createfile,writefile;
    p.s.问一下:为什么非得用win32裸API干活呢?TResourceStream挺好的;此外system单元的文件I/O可以用么?
      

  3.   

    编译时连接就TResourceStream处理
    可以追加到文件的结尾出,这样普通文件操作就OK了
      

  4.   

    RamjetZhang(王小桃):
       我写的时候倒是大小都一样,就是中间一部分好像全是0填充了。
    ly_liuyang(Liu Yang) :
       我不想用TResourceStream实现,就只引用windows单元!能行吗?
      

  5.   

    while  无解 do
        永远up;