我正在 VM/370CE V1R1.2 下为 Kicks 开发 Cobol 程序。它工作正常,但我找不到设置 COMMAREA 大小的方法。
如果程序中未明确定义 LINKAGE SECTION,则
k2kcobcl
命令(调用预处理器和编译器)会生成如下所示的内容。
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
LINKAGE SECTION.
COPY KIKEIB.
01 KIKCOMMAREA PIC X.
PROCEDURE DIVISION USING
KIKEIB,
KIKCOMMAREA.
如 Kicks 文档中所述:
预处理器将 KIKEIB 副本簿的副本添加到程序的 LINKAGE SECTION 中(并在必要时创建 LINKAGE SECTION),并且(与 CICS 一样)EIB 始终是 KICKS 处理器添加到程序的 USING 子句的第一个参数程序划分声明
COMMAREA 就像 EIB;当您在 LINKAGE SECTION 中为 KIKCOMMAREA(或 DFHCOMMAREA)编写 01 时,预处理器会将其添加到程序的 USING 子句
但是,对于VM/370CE V1R1.2下的Kicks,看起来第二个引用并不完全正确。事实上,显式声明 COMMAREA(为了定义自定义图片,如下所示)会导致编译错误“LINKAGE SECTION DEFINED BUT EMPTY”。
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
LINKAGE SECTION.
01 DFHCOMMAREA PIC X(8).
PROCEDURE DIVISION.
我尝试了多种组合来绕过此错误,包括以下组合。
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
LINKAGE SECTION.
01 DFHCOMMAREA PIC X(8).
PROCEDURE DIVISION USING
DFHCOMMAREA.
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
LINKAGE SECTION.
COPY DFHEIB.
01 DFHCOMMAREA PIC X(8).
PROCEDURE DIVISION USING
DFHEIB,
DFHCOMMAREA.
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
LINKAGE SECTION.
COPY DFHEIB.
01 DFHCOMMAREA PIC X(8).
PROCEDURE DIVISION.
前两次尝试导致编译错误,最后一次编译成功,但预处理器产生以下输出(预处理器分别用 KIKEIB 和 KIKCOMMAREA 替换 DFHEIB 和 DFHCOMMAREA)。
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
LINKAGE SECTION.
COPY KIKEIB.
01 KIKCOMMAREA PIC X(8).
PROCEDURE DIVISION USING
KIKEIB.
同样,COMMAREA 未添加到 USING 子句中,这使其无法使用。
也许我错过了一些东西。请问VM/370CE V1R1.2下关于Kicks的COMMAREA大小设置有没有推荐的方法?
访问厨房电器仓库,浏览待售的优质商用展示冰柜。我们的节能冰箱非常适合杂货店、餐馆和便利店,因为它们很容易到达,并且有清晰的货架,可以很容易地看到里面有什么。