|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2003/10/25 10:22:42 |
标题: |
如何用exe与swf的转换!?急!!! |
浏览:2853 |
|
加入我的收藏 |
楼主: |
procedure TForm1.btnOpenClick(Sender: TObject);
begin
// 通过OpenDialog让用户选择EXE形式的Flash
if OpenDialog.Execute then
begin
edtSourceExe.Text := OpenDialog.FileName;
// 自动生成.swf格式的文件名,方便用户
edtTargetSwf.Text := ChangeFileExt(edtSourceExe.Text, '.swf');
end;
end;
btnConvert是用来转换文件格式的按钮,双击之,添加如下代码:
procedure TForm1.btnConvertClick(Sender: TObject);
var
// 分别处理EXE、SWF文件的文件流
SourceStream, DestinyStream: TFileStream;
// SWF文件的大小
SwfFileSize: Cardinal;
begin
// 打开EXE形式的源文件
SourceStream := TFileStream.Create(edtSourceExe.Text, fmOpenRead or fmShareExclusive);
try
// 读取文件标志
SourceStream.Seek(- 2 * sizeof(integer), soFromEnd);
SourceStream.ReadBuffer(SwfFileSize, sizeof(integer));
// 判断读到的文件标志是否和FA123456相同
// 借此判断是否是Macromedia官方格式的Flash文件
if SwfFileSize = $FA123456 then
begin
// 读取SWF文件的大小
SourceStream.ReadBuffer(SwfFileSize, sizeof(SwfFileSize));
SourceStream.Seek(- SwfFileSize - 2 * sizeof(integer), soFromEnd);
// 打开目标SWF文件
DestinyStream := TFileStream.Create(edtTargetSwf.Text, fmCreate);
try
// 从EXE文件流中读取数据
DestinyStream.CopyFrom(SourceStream, SwfFileSize);
ShowMessage('File has been converted successfully!');
finally
// OK,释放文件流
DestinyStream.Free;
end;
end
else ShowMessage('Unknown type of executable flash file!');
finally
// OK,释放文件流
SourceStream.Free;
end;
end; 我使用这段代码,但总是出现问题,请大侠帮着看看,本人急用!!!
此帖子包含附件:
大小:194.2K |
----------------------------------------------
发白才知智叟呆,埋头苦干向未来;\r\n勤能补挫是良剂,一份辛苦一份才. |
作者: |
|
2003/10/25 10:24:45 |
1楼: |
本人在线!!!qq:21304103
----------------------------------------------
发白才知智叟呆,埋头苦干向未来;\r\n勤能补挫是良剂,一份辛苦一份才.
|
作者: |
|
2003/10/26 8:47:53 |
2楼: |
不回贴会这么惨!
----------------------------------------------
-
|
作者: |
|
2003/10/26 10:48:19 |
3楼: |
不用了,我已经解决问题了!
此帖子包含附件:
大小:141.0K |
----------------------------------------------
发白才知智叟呆,埋头苦干向未来;\r\n勤能补挫是良剂,一份辛苦一份才.
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2003/10/26 10:54:52 |
4楼: |
(2003-10-23 23:52:41) ergong(BIOS) 大哥你的问题是怎么解决的,教教,小弟!谢谢! [↑]
----------------------------------------------
|
|