EPM C/400(R)、Pascal、 および FORTRAN などの EPM 言語で作成されたプログラムは、QPXXCALL への CALL を使用して、ILE COBOL プログラムから呼び出すことができます。
次の例では、ILE COBOL プログラムが QPXXCALL を使用して、Pascal のプロシージャーを呼び出しています。
5722WDS V5R4M0 060210 LN IBM ILE COBOL CBLGUIDE/COBTOPAS ISERIES1 06/02/15 13:38:36 ページ 2
ソ ー ス
STMT PL SEQNO -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S コピー名 変更日付
1 000100 IDENTIFICATION DIVISION.
2 000200 PROGRAM-ID. COBTOPAS.
3 000300 ENVIRONMENT DIVISION.
4 000400 CONFIGURATION SECTION.
5 000500 SOURCE-COMPUTER. IBM-ISERIES.
6 000600 OBJECT-COMPUTER. IBM-ISERIES.
7 000700 DATA DIVISION.
8 000800 WORKING-STORAGE SECTION.
9 000900 01 PARAMETER-LIST.
10 001000 05 ENTRY-NAME PIC X(100) VALUE "SQUARE".
11 001100 05 ENTRY-ID PIC X(10) VALUE "*MAIN".
12 001200 05 PROG-NAME PIC X(20) VALUE "MATH".
13 001300 05 A-REAL PIC S9(9) COMP-4 VALUE 0.
14 001400 05 CLEAN PIC S9(9) COMP-4 VALUE 0.
15 001500 05 INPT PIC S99 VALUE 0.
16 001600 PROCEDURE DIVISION.
001700 MAINLINE.
17 001800 DISPLAY "ENTER AREA NUMBER:".
18 001900 ACCEPT INPT.
19 002000 MOVE INPT TO A-REAL.
20 002100 CALL "QPXXCALL" USING ENTRY-NAME
002200 ENTRY-ID
002300 PROG-NAME
002400 A-REAL.
21 002500 DISPLAY A-REAL.
22 002600 CALL "QPXXDLTE" USING CLEAN.
23 002700 STOP RUN.
002800
* * * * * ソ ー ス 仕 様 の 終 わ り * * * * *
segment MATH; procedure SQUARE ( var X : integer) ; external ; procedure SQUARE; begin X := X * X end; .
Pascal を使用すると、ILE COBOL プログラムは、Pascal プロシージャーをサブプログラムとして呼び出すことができます。 そのためには、Pascal プロシージャーに EXTERNAL ディレクティブを指定します (図 77 を参照)。 上記の例では、QPXXCALL の ENTRY-ID パラメーターを最初に呼び出した時点で、Pascal メイン環境が確立されます。 QPXXDLTE を使用することにより、Pascal 再入可能 (リエントラント) およびメイン環境を消去することができます。 CLEAN パラメーターにゼロを指定して QPXXDLTE に渡すと、 現行の Pascal のメイン環境が削除されます。
EPM プログラムから ILE COBOL プログラムを呼び出すには、別の EPM プログラムを呼び出すときと同じ呼び出しのセマンティクスを使用して行うことができます。
EPM プログラムと ILE COBOL プログラムの間で外部データを共用することはできません。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.