ネイティブ・コードから JVM COBOL へのポインタ

理論上ではポインタをネイティブ・コードからマネージ・コードに渡すことができますが、ポインタは逆参照されると不明確な結果が生じるためマネージ側では意味が通じません。つまり、ネイティブ・コードとの相互運用でポインタとして定義されたデータ項目を使用することはできません。

ネイティブ・コードからマネージ・コードにポインタを渡すには、整数を使用してポインタを保持します。使用するプラットフォームに関してポインタの保存に十分な範囲の保存項目を割り当てるようにします。このためには pic x を使用することをお奨めします。次に例を示します。

    01 myPointer pic x(4).        *> on a 32-bit platform
    01 myPointer pic x(8).        *> on a 64-bit platform

一部のプラットフォームの場合、上記の例でポインタが保存されます。そのため、ポインタのリファレンスを設定するエントリ・ポイント「getAPointer」を使用する場合、次のように呼び出すことができます。

    call "getAPointer" using by reference myPointer

同様に、この方法で保存されるポインタを、ネイティブ・コードに戻すことができます。

    call "setAPointer" using by reference myPointer

JVM COBOL エントリ・ポイントのポインタはネイティブ・コードでは通じないため、コールバックはどのような形式でもサポートされないことに注意してください。