解决了立刻给分,指出我的错误 提供正确思路的 也一样给分。下面是部分关键代码 主要是用一个TShockwaveFlash控件来生成略缩图。
第一次做 这种DLL~
没有窗体 我直接在uses 中引入ShockwaveFlashObjects_TLB
然后
swf1: TShockwaveFlash;
之后的情况是 一加入swf1.xxx 的时候 在ASP也面就会提示:错误 '8000ffff'
必须加载一个 dll。 /dll.asp,行10 -------------------------
DLL在编译过程中无错误。ASP代码:
<%
Set D = Server.CreateObject("swftojpg.MakeJpg")
D.Make 120,120,100,"e:\web\cc.swf","e:\web\"
response.Write D.Echo
Set D = nothing
%>-------------------------
unit Unit1;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
ComObj, ActiveX, AspTlb, swftojpg_TLB, StdVcl, Windows, Graphics, JPEG, ShockwaveFlashObjects_TLB;type
TMakeJpg = class(TASPObject, IMakeJpg)
swf1: TShockwaveFlash;
procedure TMakeJpg.Make(w, h, z: SYSINT; const fp, rp: WideString);
var
bitmap:tbitmap;
jpeg: TJPEGImage;
begin
swf1.Movie:=fp;
swf1.Width:=w; //定义宽
swf1.Height:=h;//定义高
swf1.SetFocus; //载入新的宽高
swf1.GotoFrame(z);//跳转到指定桢
swf1.Stop;//暂停播放
bitmap:=TBitmap.Create;//创建BMP文件并保存
try
Bitmap.Width:=swf1.Width;
Bitmap.Height:=swf1.Height;
swf1.PaintTo(bitmap.Canvas.handle,0,0);
jpeg:= TJPEGImage.Create;
try
jpeg.Assign(Bitmap);
jpeg.compress;
jpeg.SaveToFile(rp+'a.jpg');
finally
jpeg.free;
end;
//jpg操作完毕.
finally
Bitmap.Free;//创建完毕
end;
Grp := rp+'a.jpg');;
end;function TMakeJpg.Get_Echo: WideString;
begin
Get_Echo:=Grp;
end;
第一次做 这种DLL~
没有窗体 我直接在uses 中引入ShockwaveFlashObjects_TLB
然后
swf1: TShockwaveFlash;
之后的情况是 一加入swf1.xxx 的时候 在ASP也面就会提示:错误 '8000ffff'
必须加载一个 dll。 /dll.asp,行10 -------------------------
DLL在编译过程中无错误。ASP代码:
<%
Set D = Server.CreateObject("swftojpg.MakeJpg")
D.Make 120,120,100,"e:\web\cc.swf","e:\web\"
response.Write D.Echo
Set D = nothing
%>-------------------------
unit Unit1;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
ComObj, ActiveX, AspTlb, swftojpg_TLB, StdVcl, Windows, Graphics, JPEG, ShockwaveFlashObjects_TLB;type
TMakeJpg = class(TASPObject, IMakeJpg)
swf1: TShockwaveFlash;
procedure TMakeJpg.Make(w, h, z: SYSINT; const fp, rp: WideString);
var
bitmap:tbitmap;
jpeg: TJPEGImage;
begin
swf1.Movie:=fp;
swf1.Width:=w; //定义宽
swf1.Height:=h;//定义高
swf1.SetFocus; //载入新的宽高
swf1.GotoFrame(z);//跳转到指定桢
swf1.Stop;//暂停播放
bitmap:=TBitmap.Create;//创建BMP文件并保存
try
Bitmap.Width:=swf1.Width;
Bitmap.Height:=swf1.Height;
swf1.PaintTo(bitmap.Canvas.handle,0,0);
jpeg:= TJPEGImage.Create;
try
jpeg.Assign(Bitmap);
jpeg.compress;
jpeg.SaveToFile(rp+'a.jpg');
finally
jpeg.free;
end;
//jpg操作完毕.
finally
Bitmap.Free;//创建完毕
end;
Grp := rp+'a.jpg');;
end;function TMakeJpg.Get_Echo: WideString;
begin
Get_Echo:=Grp;
end;
只要把所有swf1. 相关内容删除就可以了
但我又必须要用 在DLL里应该怎么用 控件阿。
然后 form2.swf1... 还是还以前一样的错误