JVM COBOL では、CALL 文を使用してネイティブ コードと相互運用します。次に例を示します。
call xxx using by yyy p by zzz q returning r
詳細は次のとおりです。
using キーワードと returning キーワード間の項目です。これらはパラメーターです。ゼロ個以上のパラメーターが使用可能です。
共有ライブラリ (Windows 上の .dll ファイルまたは UNIX 上の .so ファイル) のネイティブ エントリ ポイントを呼び出すには、共有ライブラリをロードする必要があります。これにより、JVM ランタイム システムで共有ライブラリが認識されます。ライブラリをロードしてから、ネイティブ エントリ ポイントを呼び出してください。
01 my-dll procedure-pointer. set my-dll to entry "b" call "c"
program-id. b. display "IN B" end program b. program-id. c. display "INFO: in C" display "PASS" end program c.
これは、ネイティブ DLL (Windows では b.dll) または CSO (UNIX では b.so) をロードし、含まれるプログラムを可視化することで、プログラム C への CALL が成功するようにします。
JVM ランタイム システムは、要求されたエントリ ポイントを、Callable 属性を持つ JVM メソッドに解決しようとします。特定の名前のエントリ ポイントが JVM で見つからない場合、JVM ランタイム システムは、エントリ ポイントをネイティブ エントリ ポイントに解決しようとします。ネイティブ エントリ ポイントが見つかった場合、エントリ ポイントが呼び出され、その名前はそれ以降のネイティブ エントリ ポイントと関連付けられるため、全検索が再度行われることはありません。