cobcallpp

関数ポインターを使用して C から COBOL のプログラム、サブプログラム、またはエントリ ポイントを呼び出します。
制約事項: この関数は、ネイティブ COBOL でのみサポートされます。

構文:

#include "cobcall.h"

cobrtncode_t cobcallpp (PFR rtn, int argc, 
                      cobchar_t **argv);

パラメーター:

var 呼び出す COBOL のプログラム、サブプログラム、またはエントリ ポイントへの関数ポインター
argc argv で渡される引数の数
argv COBOL プログラムへ渡される引数

説明:

この関数は、関数ポインターと、argv で渡される引数を使用して、COBOL のプログラム、サブプログラム、またはエントリ ポイントを呼び出すために使用されます。各パラメーターは参照渡しされます。

rtn を初期化するには、COBOL エントリ ポイントを直接参照するか (エントリ ポイントがアプリケーションにリンクされている場合)、cobgetfuncaddr() を使用します。後者の場合、cobcallpp() が呼び出されたときではなく cobgetfuncaddr() が呼び出されたときにプログラムが検索されます。

cobcallpp() の結果は、ANSI '74 規格に定義されている COBOL 型の呼び出しになり、その動作も COBOL から COBOL エントリ ポイントを呼び出した場合と同様です。

COBOL エントリ ポイントに引数が必要ない場合は、argc は 0 で argv は NULL です。

相当する COBOL 構文:

call "name" [using ...] [returning ...]

例:

COBOL エントリ ポイント cobep を 2 つの文字列引数で C 関数から呼び出すには、次のいずれかの方法を使用します。

PFR rtn = cobgetfuncaddr("cobep");
cobchar_t *argv[2];
argv[0] = arg1;
argv[1] = arg2;
cobcallpp(rtn, 2, argv);

または

cobep(arg1, arg2);