如果你想脫離asp愛好者的水平,那麼你就應該學會為asp編寫元件。我在google上搜尋了一下,Delphi寫asp元件的文章一共就幾篇,所以今天寫了這篇Delphi寫asp元件的基礎文章,希望對新手有點幫助。
開始吧,讓我們一起寫一個”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方法
;
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');一樣的寫法了,就在這裡封裝了。
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核心程式碼的方法,扮演個拋磚引玉的角色。
寫這些,文字不多,就是截圖麻煩了點。水平有限,錯誤的地方,大家拍磚,拍的輕點啊! ! ! !
一風一雲
2004-10-18