生成EXE文件资料

当然,上面的程序只是基础,但加以扩充。你就可以实现往Project1.exe中加入任意复杂的
数据,方法如下(其实也是压缩程序的原理之一):
首先你得定义两个记录 :
TFileRec = record
              name : shortstring;
              start : longint;
              Size:Longint;
           end;
TArchiveRec = record
                   FileCount:longint;
                 end;
TFileRec 用于记录每个文件的信息。(以上两个记录的具体内容可自定,但必须能确定
记录的大小,也即不能在记录中有string类型等不能确定大小的字段),
TArchiveRec 用于记录插入文件的总个数。
往Project1.exe中添加资源时,可依照以上的方法进行,即把资源的数据一个一个地往
Project1.exe的尾部添加.但在加入一个资源之前,你必须先得到当前的位置(可通过
Target.Size或先移到Target的尾部,再通过Position属性得到),然后写入该文件对应
的TFileRec记录的Start字段,用于记录该资源在Project1.exe中的起始位置,在加入全部
资源以后,你再设置TArchiveRec记录的FileCount字段,然后按加入资源的顺序往Project1.exe
尾部写入对应的TFileRec,最后再写入TArchiveRec记录。从而完成了添加资源操作。
在Project1.exe中读资源时,要先在Project1.exe的尾部读出TArchiveRec记录以得到资源的
个数,然后再根据资源的个数依次读出TFileRec记录,从而得到每个文件的Start等信息,
这样就可以正确地读出每个资源的数据了。之所以可以这样读,是因为TArchiveRec和TFileRec记录
的大小是可以确定的(通过Sizeof函数),所以你可以正确定位。
其实这种程序的难点就是如何定位,只要实现了正确定位,那一切就OK了。

^_^,我来试试?
1.如果只是把一幅图作在文件中.最简单了.把显示图形的代码写好,然后把图形文件
LOATFROMFILE,写到自己程序的最后,在文件尾部把图形数据的起点标识.OK了.
比如自释放的文件等等,都可以这样做.
2.如果做个单一的安装程序,之有一个exe.文件,方法和上面差不多.只是在标识上要有
一定的格式.比如,最后两个字节是表示有多少个文件,文件信息表的偏移量.
至于文件信息表,可以包含文件在EXE中的偏移量.长度,文件名.这就够了.当然,可以是经过
压缩的数据,解压缩后savetofile 就行了 .

制作方法:要写两个程序,一个是专门在自己的EXE尾部找数据文件信息.根据约定的已知
格式,循环读出每个文件的数据,解压缩后savetofile.
   一个是制作程序,上个程序做好后,本制作程序把要打包的文件读入内存stream中,
计算好长度后,把每个文件的名字,长度,偏移量,写到解压缩程序的尾部!

AddThis Social Bookmark Button

相关文档(Relevant Entries)
使MDI窗口有一个背景图象或使它平铺
Delphi参考手册
delphi函数参考手册
Billenium Effects
关于文件操作集锦
DELPHI基础开发技巧
Delphi中拷贝文件
GetFileSize
WoW Powerleveling
Posted on August 17, 2006 11:25 PM | | | Comments (0) | | TrackBacks (0)

引用地址(TRACKBACKS)
 
TrackBack URL for this entry:
http://www.wujianrong.com/mt-tb.cgi/3807

发布评论(ADD YOUR COMMENTS)
 
感谢您参与评论;发表您的意见时请保持文章的相关性;不相关的或是单纯宣传的内容可能会被删掉。您的E-mail只是用来确认您发表的文章,不会出现在网页上。
Please keep your comments relevant to this blog entry. Email addresses are never displayed, but they are required to confirm your comments.

称呼(Name):      记住我的个人信息(Remember)
邮箱(Email):
网址(URL):
评论(Add your comments):

相关内容
广告计划