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

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

ネイティブ コードから 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 エントリ ポイントのポインターはネイティブ コードでは通じないため、コールバックはどのような形式でもサポートされないことに注意してください。