DLL の COBOL サポートは、COBOL EXTERNAL データを除いて、z/OS C/C++ 製品の DLL サポートと相互協調で処理します。 特に、COBOL アプリケーションは、C/C++ DLL からエクスポートされた関数を呼び出すことができ、C/C++ アプリケーションは、COBOL DLL からエクスポートされた COBOL プログラムを呼び出すことができます。
EXTERNAL 属性で 宣言された COBOL データ項目は、DLL サポートとは無関係です。これらのデータ項目は、プログラムが DLL 内にあるかどうかに関係なく、それらを宣言する実行単位内の任意の COBOL プログラムから名前によって アクセスすることができます。
COBOL オプション DLL、RENT、および EXPORTALL は、C/C++ DLL、RENT、および EXPORTALL オプションとほとんど同じように機能します。 (DLL オプションは C にしか適用されません。) ただし、C/C++ コンパイラーは、デフォルトでは、DLL 対応コードを生成します。
C/C++ DLL 関数ポインターを COBOL に渡し、C/C++ 関数ポインターを 関数ポインター・データ項目として受け取り、それを COBOL 内で使用することができます。次の例は、サービスへの関数ポインターを戻す C 関数への COBOL 呼び出しと、そのサービスへの COBOL 呼び出しを示しています。
Identification Division.
Program-id. Demo.
Data Division.
Working-Storage section.
01 fp usage function-pointer.
Procedure Division.
Call "c-function" returning fp.
Call fp.
関連参照
DLL
EXPORTALL
RENT
EXTERNAL 節 (Enterprise COBOL 言語解説書)