示例: COBOL 程序调用 C++ 函数
下面的示例显示了一个 COBOL 程序,该程序通过使用传递参数的 CALL 语句调用一个 C++ 函数 BY REFERENCE。
该示例说明了以下概念:
CALL语句不会指明被调用程序是用 COBOL 还是 C++ 编写的。- 必须在调用非 void C++ 函数的
CALL语句上声明函数返回值。 - COBOL 数据类型必须映射到适当的 C++ 数据类型。
- 必须声明 C++ 函数
extern "C"。 - COBOL 参数传递到
BY REFERENCE。 C++ 函数通过使用引用参数来接收这些参数。
COBOL 程序 driver :
cbl pgmname(mixed)
Identification Division.
Program-Id. "driver".
Data division.
Working-storage section.
01 A pic 9(8) binary value 11111.
01 B pic 9(8) binary value 22222.
01 R pic 9(8) binary.
Procedure Division.
Display "Hello World, from COBOL!"
Call "sub" using by reference A B
returning R
Display R
Stop Run.
C++ 函数 sub:
#include <iostream.h>
extern "C" long sub(long& A, long& B) {
cout << "Hello from C++" << endl;
return A + B;
}
输出:
Hello World, from COBOL!
Hello from C++
00033333