CALLB (バインド・プロシージャーの呼び出し)
自由形式構文 | (許可されていない - CALLP 命令コードを使用) |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
CALLB (D E) | プロシージャー名またはプロシージャー・ポインター | PLIST 名 | _ | ER | LR |
CALLB 命令は、ILE 言語で書かれたバインド・プロシージャーの呼び出しに使 用されます。
操作記述子を組み込むために命令拡張 D を使用することができます。これは、キーワード OPDESC でパラメーターが指定済みである場合に CALLP でプロトタイプ・プロシージャー を呼び出すのに似ています (操作記述子は、 プログラマーに、渡された文字ストリングまたはグラフィック・ストリングの正確な 属性 (つまり、ストリングの長さとタイプ) の実行時解決を提供します)。 詳細については、「Rational Development Studio for i ILE RPG プログラマーの手引き」のプログラムおよび プロシージャーの呼び出しに関する章を参照してください。
演算項目 2 は必須で、呼び出されるプロシージャーの名前が入っているリテラ ルまたは定数、あるいは呼び出されるプロシージャーのアドレスが入って いるプロシージャー・ポインターでなければなりません。 すべての参照は、バインド時に解析できるものでなければなりません。 指定するプロシージャー名は大文字と小文字が区別され、10 桁より多くの文字を含むことができますが、255 桁を超えることはできません。 名前が 255 桁を超えた場合には、255 桁で切り捨て られます。 結果フィールドは任意指定で、PLIST 名を入れることができます。
CALLB 例外 (プログラム状況コードが 202、211、 または 231) を処理するために、命令コード拡張 'E' またはエラー標識 ER を指定 できますが、両方を指定することはできません。 エラー処理の詳細については、プログラム例外/エラーを 参照してください。
呼び出し命令の詳細については、呼び出し命令を参照してください。
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++
* Define a procedure pointer
D
D ProcPtr S * PROCPTR INZ(%PADDR('Create_Space'))
D Extern S 10
D
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
* The following call linkage would be STATIC
C CALLB 'BOUNDPROC'
* The following call linkage would be DYNAMIC
C CALL Extern
* The following call linkage would be STATIC, using a procedure pointer
C CALLB ProcPtr