Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
|
目次
索引

|
11.4.1 ライブラリの作成方法
(1) IDL定義の例
1つのモジュール内に2つのインタフェースが定義されている場合を例に説明します。
[ X.idl ]
module M {
interface I1 {
...
};
interface I2 {
...
};
};
(2) Cマッピングの場合
- ライブラリ作成用のオプションを指定して、IDLコンパイルを行います。
IDLc -dy IDLファイル名
- IDLファイルのインタフェース定義から生成されたスケルトン(*_skel.c)と、インタフェースのメソッド関数を実装したソースから、インタフェースを実装したライブラリ(*.soまたは*.dll)を作成します。実装部のコーディングは、ライブラリ化しない場合と同様です。
- ライブラリは、以下のように作成します。

Visual C++のプロジェクト新規作成で"DLL(ダイナミックリンクライブラリ)作成"を指定してください。

cc -c *.c ....
cc -G -Kpic -o ライブラリ名 オブジェクトファイル(*.o) ....

gcc -c *.c ....
gcc -shared -fPIC -o ライブラリ名 オブジェクトファイル(*.o) ....

(3) C++マッピングの場合
- ライブラリ作成用のオプションを指定して、IDLコンパイルを行います。

IDLc -dy -vcpp IDLファイル名

IDLc -dy -cpp IDLファイル名
- IDLファイルのインタフェース定義から生成されたスケルトン(*_skel_c++.C)と、インタフェースのメソッド関数を実装したソース、およびIDLファイルから生成されたCDRソース(*_cdr.c)、クラスソース(*_c++.C)から、インタフェースを実装したライブラリ(*.soまたは*.dll)を作成します。実装部のコーディングは、ライブラリ化しない場合と同様です。
- ライブラリは、以下のように作成します。

Visual C++のプロジェクト新規作成で、"DLL(ダイナミックリンクライブラリ)作成"を指定してください。

cc -G -Kpic -o ライブラリ名 オブジェクトファイル(*.o) ....

g++ -shared -fPIC -o ライブラリ名 オブジェクトファイル(*.o) ....

(4) COBOLマッピングの場合
- IDLコンパイルを行います。
IDLc -cobol IDLファイル名
- IDLファイルのインタフェース定義から生成されたスケルトン(*_skel.cbl)と、インタフェースのメソッド関数を実装したソース、およびIDLファイルから生成されたCDRソース(*_cdr.cbl)から、インタフェースを実装したライブラリ(*.soまたは*.dll)を作成します。
- ライブラリの作成は以下のように行います。

COBOL開発環境のプロジェクトマネージャで、ライブラリを作成してください。

cobol -c *.cbl ....
cc -G -Kpic -o ライブラリ名 オブジェクトファイル(*.o) ....

(5) OOCOBOLマッピングの場合
- IDLコンパイルを行います。
IDLc -oocob IDLファイル名
- IDLファイルのインタフェース定義から生成されたスケルトン等のクラス(インタフェース名*.cob)と、インタフェースのメソッド関数を実装したソース、登録関数を定義したソース、およびIDLファイルから生成された登録集(*.cbl)から、インタフェースを実装したライブラリ(*.dll)を作成します。

(6) アプリケーションの登録
作成したライブラリをインプリメンテーションリポジトリに登録するため、以下のコマンドを実行します。
OD_impl_inst -ax 定義ファイル
定義ファイルには、各アプリケーションの構成等を以下のように記述します。
rep_id = インプリメンテーションリポジトリID
type = サーバタイプ
binary = プログラム本体のパス
IDL:M/I1:1.0 = I1の実装部ライブラリのパス (注)
IDL:M/I2:1.0 = I2の実装部ライブラリのパス
lang = 言語種別 |
注) "インタフェースリポジトリID=ライブラリパス[,プレフィックス]"の形式で、インタフェース数だけ記述します。プレフィックスは、IDLコンパイラの-Sオプションで指定したプレフィックスを指定します。
Copyright 2005 FUJITSU LIMITED