如何把一个文件放到EXE中,而且可以通过某种途径编辑该EXE中的这个文件?(200分)

  • 主题发起人 主题发起人 jazzfan
  • 开始时间 开始时间
J

jazzfan

Unregistered / Unconfirmed
GUEST, unregistred user!
标题很清楚了!
 
1。先生成资源文件
1。1 做rc资源声明文件
tmp.rc
leg1 mid LEGEND01.MID
jpg1 jpeg abcd.jpg
1。2 将rc文件编译成res资源文件
brcc32 tmp.rc
2。将资源文件加入到程序中。
在工程中选add加入此tmp.res文件
3。使用
AnsiString path;
GetTempPath(sizeof(pathb),pathb);
path=AnsiString(pathb);
TResourceStream *pic=new TResourceStream((int)HInstance,"jpg1","jpg");
pic->SaveToFile(path+"abcd.jpg");
delete pic;
TResourceStream *sound=new TResourceStream((int)HInstance,"leg1","mid");
sound->SaveToFile(path+"LEGEND01.MID");
delete sound;
4。编译
通过第三步生成临时文件后,就随你使用了

 
第一问还可以实现,但"编辑"Exe若象word那样,恐怕行不通!?
 
把那个文件直接加到原来文件的后面,需要编辑的时候先读出来,然后修改了过后,
再加回去,这是可以实现的!
 
问题的关键是如何修改EXE中的资源并且不影响它的运行?
此外,将资源加入EXE有没有比.RES更简单的方法,例如利用DFM的属性。
 
推荐你使用exebinder.exe,esoftware.com.cn有得下在的!!
 
EXEBuilder如何实现的,有源码吗!
 
不要用资源文件的方法,更新不方便,直接加入 copy/b 或 用一个TMemoryStream先后
读入两个文件然后再保存(专门做一个装配程序),这样要修改、读取、更新都方便的多
 
就是把文件写到Exe的尾部,这种问题论坛中已经讨论过很多次。
把文件写到Exe的尾部,只要在编辑、修改时不改掉Exe的主干部分,是不会影响到Exe的
执行的。能够有技术自己编译可执行文件的实在不多,大家的做法就是把数据写到Exe尾
部这样干的。
 
如何得知Exe的主干部分的Size?
能够在EXE运行期间从EXE的尾部获取文件并编辑吗?
 
就是作一含有此文件的资源文件
 
我的主页mantousoft.51.net有一个EXE文件加密器
是用资源文件及操作2进制文件实现的,我决定过几天公布源代码,有兴趣的
等我发贴子叫大家:)
 
to mantousoft:
原来Delphi盒子是你的主页呀,挺不错的,你是重庆的吧?我也是哦!
有机会一定要多多交流
 
我觉得还是利用dfm的rc资源保存文件比较方便,而且有现成的控件可以使用,
比如AHM2000种就有一个TAHMFileHolder控件,添加删除都可以在设计期间进行,很方便。
 
》如何得知Exe的主干部分的Size?
在装配的时候把原来的size加到文件最后,用的时候读出来就知道原来的大小了
》能够在EXE运行期间从EXE的尾部获取文件并编辑吗?
当然能了:
var
f: file of char;
c: char;
s: string;
begin
assignfile(f, application.exename);
filemode := 0;//设置文件操作属性为只读
reset(f);
seek(f, sizeof(f) - asize);//假设已经取得原来大小为asize
s := '';
while not eof(f) do
begin
read(f, c);
appendstr(s, c);
end;
closefile(f);
//现在,就可以对 s 进行操作了。
end;
 
如果只是文本
有直接的控件可以利用
AHM2000的STRINGLISTKOLDER
可以参考其源码
 
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=403887
我看了这贴后,用里面的代码写了:
http://go4.163.com/~lovejingtao/exe2to1.exe
http://go4.163.com/~lovejingtao/exelock.exe
建议问问题前先查找一下。
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部