怎样实现COBOL子程序的动态调用,编译选项DYNAM,NODLL如何设置?

怎样实现COBOL子程序的动态调用,编译选项DYNAM,NODLL如何设置?,第1张

在编译代判团码中指绝笑定DYN参数:

//COBOL EXEC PGM=IGYCRCTL,REGION=640K,COND=(12,LE),

// PARM=(NOTERM,LIB,XREF,DYN,'')

.

.

//LINK EXEC PGM=HEWLF064,REGION=2048K,COND=(12,LE),PARM=(DYN)

其实只要在COBOL程序中是CALL一个变量,它就是表示一个动态调用。掘宏橘

一般的册迟来说cobol调用其他的程序,一般的是include之前程序已经编译好的文件历姿岩。cobol2002应该是fujitsu在windows下的开发工具,我们在编译好的子程序,一般会生成肢御dll文件,在编译的脚本程序当中,把我们所需要调用的c程序的dll文件include进去就可以了。

(1)首先,cobol程序可以跳开JCL,直接在cobol程序中直接指定外部文件(当然、大型开发没有这么做的),例:

环境(闭巧模ENVIRONMENT)部、INPUT-OUTPUT节、FILE-CONTROL段:

ENVIRONMENT DIVISION.

INPUT-OUTPUT SECTION.

FILE-CONTROL.

SELECT FILE001

ASSIGN TO 'c:\1.txt'

ORGANIZATION IS LINE SEQUENTIAL

FILE STATUS IS .......(后面的内容省略)

其中“FILE001”为文件标识(也就是FD定义中,和过程部OPEN/READ/CLOSE语句中的文件名).

ASSIGN TO 子句直接指定文件宽笑,不需要JCL。

(2)如果想通过JCL指定,则程序里面,ASSIGN TO 子句如下(其他不用动):

ASSIGN TO SYS100

其中“SYS100”被称为外部装置名(或者称之为“DD名”),

这样,程序内部没有直接指定外部文件的位置和名称,

只是将其和外部装置名SYS100联系到了一起。JCL中指定如下:

SET CBL_SYS100=c:\1.txt

注意,JCL里面(也就是环境变数设定时)环境变数名是CBL_XXXX的形式,

XXX部分是程序中的轿缓外部装置名。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12413514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存