注意: 9.1 組み込み関数の規則 利用オプション |
標準DLL(Dynamic Link Library:動的リンク・ライブラリ)オブジェクト内の処理をLANSAコンポーネントやファンクションから呼び出すことができます。
これは、オペレーティング・システムのDLLエントリー・ポイントへの汎用的なインターフェースです。特殊な要件に対して、このインターフェースは最適ではない場合もあります。特殊な要件の場合、独自の組み込み関数の作成を検討してください。この機能の詳細については、「独自の組み込み関数の作成」を参照してください。
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 必須 | 呼び出されるDLLの別名 | 1 | 32 | ||
2 | A | 必須 | 呼び出されるファンクションの別名(エントリー・ポイントなど) | 1 | 32 | ||
3 - 20 | X | 任意 | DLLエントリー・ポイントに渡すユーザー定義の実引数または論理引数 | 1 | 無制限 |
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 必須 | 戻りコード OK:正常終了した | 2 | 2 | ||
2 | A | 任意 | エラー・メッセージ・テキスト | 1 | 256 | ||
3 - 20 | X | 任意 | DLLエントリー・ポイントからのユーザー定義の実戻り値または論理戻り値 | 1 | 無制限 |
X_USEDLL.DAT定義ファイルには、DLL組み込み関数が使用できる全DLLの特性が定義されています。このファイルを作成または変更する前に、またはこの組み込み関数を使用する前に、以下のことを理解しておく必要があります。
キーワード | 意味 |
|---|---|
コメント行 | |
DLLNAM= | 実際の(オペレーティング・システム・レベルの)DLLファイル名。識別子は除外します。 |
DLLALS= | RDMLファンクションで使用するこのDLLの別名。指定可能な最大文字数は32です。この名前は定義ファイル内でユニークにする必要があります。大文字と小文字は区別されません。DLLNAM=は、DLLALS=に先行する必要があります。 |
ENTNAM= | 実際の(オペレーティング・システム・レベルの)DLLエントリー・ポイント名。ほとんどのオペレーティング・システムで、この名前の大文字と小文字は区別されません。この名前は現在のDLL定義内でユニークにする必要があります。 |
ENTALS= | RDMLファンクションで使用するDLLエントリー・ポイントの別名は、最大32桁の文字を指定することができます。この名前は現在のDLL内でユニークにする必要があります。大文字と小文字は区別されません。ENTNAM=は、ENTALS=に先行する必要があります。 |
ENTSKL= | DLLエントリー・ポイントの実行に必要なCプログラムを定義するスケルトン・ファイルの名前 (識別子を含む)を指定します。このプログラムは、DLLエントリー・ポイントを呼び出すCプログラムを生成するためのテンプレートとして使用されます。このテンプレートを作成する方法については、付属のサンプル/例の十分なコメントが記された例を参照してください。テンプレート・ファイルはすべて、X_LANSA\SOURCEディレクトリに入れておく必要があります。ENTNAM=は、ENTSKL=に先行する必要があります。 |
このファイルの内容については、以下の例を検討してください。
* --------------------------------------------------
* Example of defining Crystal Report DLL entry points
* ---------------------------------------------------
DLLNAM=CRPE
DLLALS=CrystalReports
*
ENTNAM=PEOpenEngine
ENTALS=OpenEngine
ENTSKL=CRPE0001.S
*
ENTNAM=PECloseEngine
ENTALS=CloseEngine
ENTSKL=CRPE0002.S
*
ENTNAM=PEPrintReport
ENTALS=PrintReport
ENTSKL=CRPE0003.S
*
ENTNAM=PEGetVersion
ENTALS=GetVersion
ENTSKL=CRPE0004.S
この例は、CRPEという名前のCrystal ReportsのDLLを定義したものです。この例では、OpenEngine、CloseEngine、PrintReport、GetVersion という4つのエントリー・ポイントの別名があります。このDLLとエントリー・ポイントを呼び出すスケルトン/テンプレート・プログラムは、それぞれ...\X_LANSA\SOURCEディレクトリのファイルCRPE0001.S、CRPE0002.S、CRPE0003.S、およびCRPE0004.Sに入っています。スケルトン・プログラムには、DLLをロードする方法、実エントリー・ポイントの名前、組み込み関数の引数とエントリー・ポイントの引数をマッピングする方法、戻りコードと戻り値の処理方法などが定義されています。
独自のスケルトン・ファイル/テンプレートを設定する場合は、以下のガイドラインに従ってください。
アプリケーションを正常に実行するために、DLLをX_LANSA/EXECUTEディレクトリにコピーすることが必要になる場合があります。例えば、CRPE32.DLLは、X_LANSA/EXECUTEディレクトリへのコピーが必要です。
実際の開発サイトで、この組み込み関数の引数を実DLLエントリー・ポイントの引数にマッピングするための規則について決定しておく必要があります。採用する規則は、DLLの各エントリー・ポイントに関連するスケルトン/テンプレート・プログラムに実装します。
用意されているスケルトン/テンプレート・ファイルは、特に以下の要件に対応するために使用されました。
例えば、Crystal Reportsのエントリー・ポイントでは以下のパラメータと戻り値の規則が出荷時の形式として採用されています。
DLL別名 | エントリー・ポイント | 別名 | 引数と戻り値 |
|---|---|---|---|
CrystalReports | OpenEngine | Ret 1 | 戻りコード。OKまたはERが戻される。任意 |
CrystalReports | CloseEngine | Ret 1 | 戻りコード。OKまたはERが戻される。任意 |
CrystalReports | PrintReport | Arg 3 | レポート名。必須。指定がない場合はデフォルトとしてNull文字列が使用され、「見つかりません」のエラーとなる |
Arg 4 | プリント・レポート・オプション。任意。YまたはNを指定する。デフォルトはY | ||
Arg 5 | ウィンドウ表示オプション。任意。YまたはNを指定する。デフォルトはN | ||
Arg 6 | ウィンドウ・タイトル。任意デフォルトはNull文字列 | ||
Ret 1 | 戻りコード。OKまたはERが戻される | ||
CrystalReports | GetVersion | Ret 1 | 戻りコード。OKまたはERが戻される。任意 |
Ret 2 | メジャー・バージョン番号。任意 | ||
Ret 3 | マイナー・バージョン番号。任意 |