C からの COBOL プログラムの呼び出し

リンク

  • COBOL と C のオブジェクト コードを一緒に使用する場合は、COBOL と C の実行可能ファイルを別々にビルドして維持し、インポート ライブラリと Micro Focus の COBOL を呼び出すための C 関数 (製品ヘルプの「COBOL を呼び出す C 関数」を参照) を使用してそれらの間の呼び出しを解決することをお勧めします。

COBOL エントリ ポイントの直接の呼び出し

注: リトルエンディアンの PowerLinux プラットフォームでは次の手順を実施する必要がありますが、これは他のプラットフォームでも有用なプログラミング方法です。本トピックの COBOL エントリ ポイントへの参照には、PROCEDURE DIVISION ヘッダーおよび ENTRY 文の両方が含まれます。

cobcall() または cobfunc() を使用するのではなく、C から直接 COBOL エントリ ポイントを呼び出して、エントリ ポイントで指定されているパラメーターより少ないパラメーターを渡す場合 (つまり、正式なパラメーターよりも実際のパラメーターが少ない場合)、C から呼び出される COBOL エントリ ポイントは次のいずれかになります。

  • 関数プロトタイプを持つ C プログラムでは宣言されない
  • 変数のパラメーター リストを持つ関数プロトタイプを使って C プログラムで宣言される (下記参照)

次のエントリ ポイントを定義した COBOL プログラムを使用するとします。

 entry "bob" using arg1 arg2 arg3 arg4 arg5 arg6
 arg7 arg8 arg9.

また、C プログラムに次のようなコードが含まれているとします。

 i = bob(&x1, &x2);

この場合、C プログラムでこの COBOL エントリ ポイントを宣言するには、次のようにします。

 int bob(void *arg1, void *arg2,...);