开始吧,让我们一起编写一个”hello world!”的示例。我这里用的是Delphi 7。
1.文件-新建-其他-ActiveX-ActiveX Library,然后保存成showdll.dpr
2.再次,文件-新建-其他-ActiveX-ActiveX Server Object,填写CoClassName:showhello,其他不变,点击ok。
3.现在开始写程序,先添加一个方法。选择Ishowhello-右键-New-Method,填写方法名称:sayworld。
4.现在开始写程序,将Unit1保存成show.pas,然后添加方法sayworld的代码
show.pas的全部代码如下:
unit show;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
ComObj, ActiveX, AspTlb, showdll_TLB, StdVcl;
type
Tshowhello = class(TASPObject, Ishowhello)
protected
procedure OnEndPage; safecall;
procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
procedure sayworld; safecall; //sayworld方法
end;
implementation
uses ComServ;
procedure Tshowhello.OnEndPage;
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)begin
inherited OnEndPage;
end;
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
procedure Tshowhello.OnStartPage(const AScriptingContext: IUnknown);
begin
inherited OnStartPage(AScriptingContext);
end;
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)procedure Tshowhello.sayworld(); //定义sayworld方法
begin
response.Write('Hello world'); //里边的语法和asp一样的写法了,就在这里封装了。
end;
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
initialization
TAutoObjectFactory.Create(ComServer, Tshowhello, Class_showhello,
ciMultiInstance, tmApartment);
end.
4.点击运行,编译成dll, 并自动注册了。这时候会提示:
让你放到web服务器上运行,好了现在写个asp文件调用一下吧,注意Delphi已经生成了一个asp文件,我们改一下调用的方法就可以了。
修改后的showhello.asp代码如下:
HTML
BODY
TITLE Testing Delphi ASP /TITLE
CENTER
H3 You should see the results of your Delphi Active Server method below /H3
/CENTER
HR
% Set DelphiASPObj = Server.CreateObject("showdll.showhello")
DelphiASPObj.sayworld
%
HR
/BODY
/HTML
在iis的站点下运行看看效果吧:
5.其他:
Delphi编写的组件,用win2000的组件服务注册后可以看该组件的接口的方法
6.还有asp页面和组件间传递参数,其实就是给调用的方法(函数)传递参数,注意Delphi里定义的时候要和vbs 的数据类型一致。这些还是大家多实践吧。这里主要是想大家学会封装asp核心代码的方法,起个抛砖引玉的作用。