理論上ではポインターをネイティブ コードからマネージ コードに渡すことができますが、ポインターは逆参照されると不明確な結果が生じることがあるため、マネージ側では意味が通じません。つまり、ネイティブ コードとの相互運用でポインターとして定義されたデータ項目を使用することはできません。
ネイティブ コードからマネージ コードにポインターを渡すには、整数を使用してポインターを保持します。使用するプラットフォーム用に、ポインターの保存に十分な範囲の保存項目を割り当てるようにします。このためには 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 エントリ ポイントのポインターはネイティブ コードでは通じないため、コールバックはどのような形式でもサポートされないことに注意してください。