Delphi XEでActiveXライブラリを作成する

Delphi XEでActiveXライブラリを作成する方法を紹介します。

メニューから「ファイル」→「新規作成」→「その他」を選択します。

新規作成ダイアログの左のツリービューから「Delphiプロジェクト」の「ActiveX」を選択し、「ActiveXライブラリ」を選択して、「OK」ボタンを押します。

プロジェクトが作成されました。

メニューから「ファイル」→「新規作成」→「その他」を選択します。

新規作成ダイアログの左のツリービューから「Delphiプロジェクト」の「ActiveX」を選択し、「オートメーションオブジェクト」を選択して、「OK」ボタンを押します。

オートメーションオブジェクトウィザードが表示されます。

CoClass名を入力して、「OK」ボタンを押します。

インターフェースとCoClassが作成されます。

インターフェースを右クリックして、ポップアップメニューから「新規作成」→「メソッド」を選択して、メソッドを作成します。

メソッドの名前を入力します。
ここでは「Inc」とします。
このメソッドは引数の数値に1を加えた値を返します。

パラメータタブを選択して、パラメータを設定します。
ここでは次のように設定します。

  • 戻り値の型「long」
  • パラメータ
    • 名前「Number」
    • 型「long」
    • 修飾子「in」

メソッドをもう一つ作成します。

インターフェースを右クリックして、ポップアップメニューから「新規作成」→「メソッド」を選択して、メソッドを作成します。

メソッドの名前を入力します。
ここでは「Say」とします。
このメソッドは引数の文字列の頭に「Hello,」を加えた文字列を返します。

パラメータタブを選択して、パラメータを設定します。
ここでは次のように設定します。

  • パラメータ
    • 名前「Name」
    • 型「BSTR」
    • 修飾子「in」
  • パラメータ
    • 名前「Result」
    • 型「BSTR*」
    • 修飾子「out,retval」

修飾子は[…]ボタンを押して編集します。

「実装の更新」ボタンを押し、実装を更新します。

Unit1.pasを開き、処理を記述します。

function TExample.Inc(Number: Integer): Integer;
begin
  Result := Number + 1;
end;

function TExample.Say(const Name: WideString): WideString;
begin
  Result := 'Hello, ' + Name;
end;

ActiveXサーバーを登録します。

メニューから「実行」→「登録」を選択して、レジストリに登録します。

デバッグ用のプログラムを作成します。

C:\Project\sample.vbsを作成します。

Dim obj
Set obj = CreateObject("Project1.Example")
MsgBox obj.Inc(1)
MsgBox obj.Say("World")

メニューから「実行」→「実行時引数」を選択します。

ホストアプリケーションを次のように設定します。(WindowsXPの場合)

C:\WINDOWS\system32\cscript.exe

パラメータ欄にデバッグ用プログラムのパスを指定します。

実行ボタンを押すと、デバッグ用プログラムが実行されます。

デバッグ用プログラムから作成したActiveXプログラムが呼ばれます。
ブレークポイントでプログラムを停止し、ステップ実行でデバッグすることができます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください