示例: 将参数传递到 ILE C++ 程序的 CL 程序
CL 程序
CLPROG1 将参数 v, d, h, i和 j 传递到 ILE C++ 程序 MYPROG1。注: 要在运行 ILE 程序时将参数传递给该程序,请使用 CL Call (CALL) 命令的 PARM 选项。
这些参数在 CL 程序 图 1。 将自变量传递至 ILE C++ 程序的 CL 程序的示例。
CLPROG1中以 null 结束。 它们通过引用传递。 MYPROG1 的所有传入自变量都是指针。/* CLPROG1
PGM PARM(&V &D &H &I &J)
DCL VAR(&V) TYPE(*CHAR) LEN(10)
DCL VAR(&VOUT) TYPE(*CHAR) LEN(11)
DCL VAR(&D) TYPE(*DEC) LEN(10 1)
DCL VAR(&H) TYPE(*CHAR) LEN(10)
DCL VAR(&HOUT) TYPE(*CHAR) LEN(11)
DCL VAR(&I) TYPE(*CHAR) LEN(10)
DCL VAR(&IOUT) TYPE(*CHAR) LEN(11)
DCL VAR(&J) TYPE(*LGL) LEN(1)
DCL VAR(&JOUT) TYPE(*LGL) LEN(2)
DCL VAR(&NULL) TYPE(*CHAR) LEN(1) VALUE(X'00')
/* ADD NULL TERMINATOR FOR THE C++ PROGRAM */
CHGVAR VAR(&VOUT) VALUE(&V *TCAT &NULL)
CHGVAR VAR(&HOUT) VALUE(&V *TCAT &NULL)
CHGVAR VAR(&IOUT) VALUE(&V *TCAT &NULL)
CHGVAR VAR(&JOUT) VALUE(&V *TCAT &NULL)
CALL PGM(MYPROG1) PARM(&VOUT &D &HOUT &IOUT &JOUT)
ENDPGM
CL 程序 图 2。 通用 CL 命令提示符的示例。
CL 程序 图 3。 按引用接收自变量 (指针) 的 C++ 程序的示例。
CLPROG1 从 CL 命令提示符 MYCMD1 接收其输入值,该命令提示符提示用户输入期望的值。 MYCMD1 的源代码为: CMD PROMPT('ENTER VALUES')
PARM KWD(V) TYPE(*CHAR) LEN(10) +
PROMPT('1ST VALUE')
PARM KWD(D) TYPE(*DEC) LEN(10 2) +
PROMPT('2ND VALUE')
PARM KWD(H) TYPE(*CHAR) LEN(10) +
PROMPT('3RD VALUE')
PARM KWD(I) TYPE(*CHAR) LEN(1) +
PROMPT('4TH VALUE')
PARM KWD(J) TYPE(*LGL) LEN(10 2) +
PROMPT('5TH VALUE')
CLPROG1 从命令提示符 MYCMD1接收到用户输入后,它将输入值传递到 C++ 程序 MYPROG1。 此程序的源代码包含在 myprog1.cpp中:// myprog1.cpp
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <bcd.h>
// Arguments are received by reference from CL program CLPROG1
// Incoming arguments are all pointers
int main(int argc, char *argv[])
{
char *v;
char *h;
char *i;
char *j;
_DecimalT <10, 1> d;
v = argv[1];
d = *((_DecimalT <10,1> *) argv[2]);
h = argv[3];
i = argv[4];
j = argv[5];
cout << " v= " << v
<< " d= " << d
<< " h= " << h
<< " i= " << i
<< " j= " << j
<< endl;
}
如果 CL 程序
CLPROG1 将以下参数传递到 C++ 程序 MYPROG1:'123.4', 123.4, 'Hi', LO, and '1'程序 MYPROG1 的输出为:v= 123.4 HI LO 1 d= 123.4 h= HI LO 1
i= LO 1 j= 1
Press ENTER to end terminal session.