RPGIV编程问题百解(34)MCH3601,利用pointer进行程序间Ds结构传递分析和技巧
RPGLE程序通过pointer进行Ds结构参数传递,如果没有定义合理,就会在程序调用时OS会报出错信息:
MCH3601,Pointer not set for location referenced.
通常情况下,如果一个程序要通过pointer接收Ds结构信息,必须要在程序或copybook中定义这个Ds 在一个pointer的based键字,如:
d ds based() qualified
d *
如果传递放rpgle程序要使用同样的Ds结构,放入传递的数据,不能直接使用copybook中已经based的Ds结构名,必须在传递程序中定义likeds,即另外使用一个相同Ds结构的名称。在传递时,把这个Ds结构用%addr赋值给pointer,如:
d ds likeds() qualified
......
= ......
= ......
......
= %addr();
......
return ;
......
阅读(1331) | 评论(0) | 转发(0) |