关于编译的问题-不太容易,高手请进 (200分)

  • 主题发起人 主题发起人 CaoAizu
  • 开始时间 开始时间
C

CaoAizu

Unregistered / Unconfirmed
GUEST, unregistred user!
我常见到许多Delphi做的程序,可以编译出单独运行的程序,请问是怎样做到的。
比如现在流行的Flash,可以把播放器(Flash Player)和一个动画(*.swf)做到一起,
形成一个单独执行的Exe文件。
再比如,许多安装盘制作程序,把要安装的软件打包,然后与安装程序编译在一起
形成单独的可执行文件。
这么说吧,我想做一个媒体播放器生成器,让用户定制个按钮的图标,窗体样式等等。
请问这是怎么做到的。请各位大虾帮忙,我不会吝惜积分的。先放两百分试试。
另外,先前回答的几位朋友,你们也太小看我了吧,若像你们所想的那样简单,这个
问题还值两百分吗??
 
答问题1:
“可以把播放器(Flash Player)和一个动画(*.swf)做到一起,
形成一个单独执行的Exe文件。”
--“播放器(Flash Player)”肯定需要OCX构件的。
只是他可能把“OCX构件”捆绑在exe中,运行是把“OCX构件”取出来,并拷到windows目录,同时注册OCX。
把“动画(*.swf)”作到“一个单独执行的Exe文件”中是很容易的,作个资源文件就行。
答问题2:
“把要安装的软件打包,然后与安装程序编译在一起
形成单独的可执行文件。”
--用“InstallShield PackageForTheWeb”就可以了,包你满意。[:D]
 
通常在Delphi的应用程序中,我们会调用到很多的资源,例如图片,动画(AVI),声音,
甚至于别的执行文件。当然,把这些资源分布到不同的目录不失为一个好办法,但是有没
有可能把这些资源编译成标准的windows资源从而链接到一个执行文件里面呢?
我们可以自己做一个RC文件,例如 sample.rc ,RC文件其实就是一个资源文件的描述文
本,通过“记事本”程序创建就行了。然后可以输入一些我们要定义的资源,例如:
MEN BITMAP c:/bitmap/men.bitmap
ARJ EXEFILE c:/arj.exe
MOV AVI c:/mov.avi
然后用BRCC32把这个RC文件编译成sample.res(真正的资源文件)。
在Delphi的工程文件中使用 $R 编译指令让Delphi包括资源到EXE文件里面。
{$R sample.res}
这样我们就可以在这个单一的执行文件中调用资源了。举例如下:
EXEFILE:
procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;
AVI:
procedure LoadAVI;
begin
{Avi1是一个TAnimate类}
Avi1.ResName:='AVI';
Avi1.Active:=True;
end;


 
1.如小人物所说,把*。swf文件做进资源文件(*。res)中编译就可以生成,难点在于ocx
插件,也许注册方法就如小人物说的,那就要把ocx插件也做进资源文件中了,可以通过
WinExcuteShell 函数调用regsvr32。exe注册插件;
2。现成的工具可以使用呀,如delphi自己的 InstallShield就不错!
 
天哪,我不是这个意思,我不是需要把swf编译在一个可执行文件中,也不是要做
一个安装盘,你们误解我的意思了。
这么说吧,我是想做一个安装盘制作程序,做安装盘的程序,就像InstallShield
 
做安装程序? 去看看 Inno setup 吧!
公开源代码的专业安装程序(Delphi)!
 
YB_unique,Thank you
我回去研究一下,若能解决问题,给你加分
 
我改了问题,大家看看
 

这么说吧,我想做一个媒体播放器生成器,让用户定制个按钮的图标,窗体样式等等。
 
合成:)
 
多人接受答案了。
 
后退
顶部