调用包含 _DecimalT 类模板的另一个程序
您可以进行跨语言调用,并将 _DecimalT- 类参数传递给 ILE RPG、ILE COBOL 和 ILE C 程序。
下图提供了一个 ILE COBOL 示例。
C++ 程序为:
// This program calls an ILE COBOL program
// and passes a bcd object.
#include <iostream.h>
#include <bcd.h>
extern "OS" void CBLPGM(_DecimalT<9,7>);
int main(void)
{
_DecimalT<9,7> arg=__D("12.1234567");
// Call an ILE COBOL program and pass a bcd object
// to it.
CBLPGM(arg);
cout <<"The COBOL program was called and passed a bcd object"<<endl;
}
ILE COBOL 程序是
IDENTIFICATION DIVISION.
PROGRAM-ID. CBLPGM.
***********************************************************************
* Packed decimals: This is going to be called by a C++ *
* program to pass packed decimal data. *
* *
***********************************************************************
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-I.
OBJECT-COMPUTER. IBM-I.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
77 PAC-DATA PIC X(30)
VALUE "PROGRAM START".
77 PACK-IN-WS PIC 99.9999999.
LINKAGE SECTION.
01 PACK-DATA PIC 9(2)V9(7) PACKED-DECIMAL.
PROCEDURE DIVISION USING PACK-DATA.
MAIN-LINE SECTION.
MOVE PACK-DATA TO PACK-IN-WS.
DISPLAY "**** BCD OBJECT RECEIVED IS: " PACK-IN-WS.
GOBACK.输出为:
**** BCD OBJECT RECEIVED IS: 12.1234567
The COBOL program was called and passed a bcd object