開始吧,讓我們一起編寫一個”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;
begin
inherited OnEndPage;
end;
procedure Tshowhello.OnStartPage(const AScriptingContext: IUnknown);
begin
inherited OnStartPage(AScriptingContext);
end;
procedure Tshowhello.sayworld(); //定義sayworld方法
begin
response.Write('Hello world'); //裡邊的語法和ASP一樣的寫法了,就在這裡封裝了。
end;
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核心代碼的方法,起個拋磚引玉的作用。