ASP 愛好家のレベルから脱却したい場合は、ASP 用のコンポーネントの作成方法を学ぶ必要があります。 Google で検索したところ、Delphi での ASP コンポーネントの作成に関する記事は少ないことがわかりました。そこで、初心者の参考になればと思い、Delphi での ASP コンポーネントの作成に関する基本的な記事を書きました。
まず、「hello world!」の例を書いてみましょう。ここではDelphi 7を使用しています。
1.「ファイル」→「新規作成」→「その他」→「ActiveX」→「ActiveX ライブラリ」を選択し、showdll.dpr という名前で保存します。
2. 再度、「ファイル」->「新規」->「その他」->「ActiveX」->「ActiveX サーバー オブジェクト」に移動し、「CoClassName: showhello」と入力し、他はすべて変更せず、「OK」をクリックします。
3. ここでプログラムの作成を開始し、最初にメソッドを追加します。 「Ishowhello」->右クリック->「新規」->「メソッド」を選択し、メソッド名「sayworld」を入力します。
4.ここでプログラムの作成を開始し、Unit1 を show.pas として保存し、sayworld メソッドのコードを追加します。
show.pas のコード全体は次のとおりです
。
{$WARN SYMBOL_PLATFORM オフ}
インタフェース
ComObj、ActiveX、AspTlb、showdll_TLB、StdVcl
を使用します
。
type
Tshowhello = class(TASPObject, Ishowhello)
protected
プロシージャ OnStartPage(constAScriptingContext
: IUnknown) プロシージャ
Sayworld
;
実装
ComServ を使用します。
プロシージャ Tshowhello.OnEndPage を
開始し
、OnEndPage を
終了します。
process Tshowhello.OnStartPage(const AScriptingContext: IUnknown);
begin
継承 OnStartPage(AScriptingContext);
process
Tshowhello.sayworld(); //sayworld メソッドを定義します
。Write
('Hello world'); inside 同じように書かれていますが、ここにカプセル化されているだけです。
終わり;
初期化
TAutoObjectFactory.Create(ComServer, Tshowhello, Class_showhello,
ciMultiInstance, tmApartment);
4
. 「実行」をクリックして dll にコンパイルし、自動的に登録します。このとき、次のプロンプトが表示されます。
Web サーバー上で実行してみましょう。ASP ファイルを作成して呼び出します。呼び出しメソッドを変更するだけで、Delphi が生成していることに注意してください。
変更された showhello.asp コードは次のとおりです。
<HTML>
<BODY>
<TITLE> Delphi ASP のテスト </TITLE>
<CENTER>
<H3> 以下に Delphi Active Server メソッドの結果が表示されます。 </H3>
</ CENTER >
<HR>
<% Set DelphiASPObj = Server.CreateObject("showdll.showhello")
DelphiASPObj.sayworld
%>
<HR>
</BODY>
</HTML>
iis サイトで実行して効果を確認します。
5.その他:
Delphi で書かれたコンポーネントの場合、win2000 コンポーネントサービスに登録すると、コンポーネントのインターフェースメソッドが表示されます。
6.実際、Delphi で定義される場合、パラメータは vbs のデータ型と一致している必要があることに注意してください。みんなもこれをもっと実践したほうがいいよ。ここでの主な目的は、ASP のコア コードをカプセル化する方法を誰もが学習できるようにし、出発点として機能することです。
文字数は多くありませんが、スクリーンショットを撮るのが少し面倒です。私のレベルには限界がありますので、間違えたら優しく叩いてください! ! ! !
一風一雲
2004-10-18