免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 22735 | 回复: 18
打印 上一主题 下一主题

关于动态调用RPGLE程序的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-23 09:20 |只看该作者 |倒序浏览
逻辑:
       A程序循环动态生成并调用B程序。每次生成B程序前会删除B程序,并执行DLCOBJ命令。
运行:
       B程序每次都正常创建,但运行结果始终为第一次生成的B程序的运行结果。




     

论坛徽章:
0
2 [报告]
发表于 2013-09-23 10:13 |只看该作者
好吧,现在运行都不行了,第二次CALL B程序时报错:
tried to refer to all or part of an object that no longer exists

论坛徽章:
0
3 [报告]
发表于 2013-09-23 10:21 |只看该作者
怀疑问题可能在这几个地方:
1)编译时的参数问题。
2)激活组的问题。

问题原因可能是可执行程序没有在内存中释放。

论坛徽章:
0
4 [报告]
发表于 2013-09-23 10:43 |只看该作者
总结下测试结果:
1)动态生成B程序,生成前执行删除B程序操作,运行时报错tried to refer to all or part of an object that no longer exists。
2)不执行删除B程序操作,程序正常执行,但B程序始终执行的是第一次创建并加载的B程序(即无法动态加载B程序)
考虑可能是B程序在第一次执行时加载到内存,此时如果执行了删除B程序操作,后续继续调用B程序时将报错找不到程序(即使重新生成B程序也没用)。但如果不删除B程序,采用替换B程序目标方式的话,程序不会报错,但由于B程序已经加载到内存,不会继续加载替换的程序,因此执行的始终是第一次加载到内存的B程序。
尝试使用DLCOBJ、RCLRSC清理都无效。
尝试使用SETOBJACC ALCOBJ命令手动加载也无效。

论坛徽章:
0
5 [报告]
发表于 2013-09-23 10:49 |只看该作者
考虑一个新的方案:在A与B之间加一个C程序,A—》C—》B。

论坛徽章:
0
6 [报告]
发表于 2013-09-23 10:56 |只看该作者
新方案问题解决。

论坛徽章:
5
2015亚冠之阿尔艾因
日期:2015-08-10 02:23:34操作系统版块每日发帖之星
日期:2015-08-13 06:20:002015七夕节徽章
日期:2015-08-21 11:06:1715-16赛季CBA联赛之山西
日期:2016-04-13 02:36:59操作系统版块每日发帖之星
日期:2016-04-14 06:20:00
7 [报告]
发表于 2013-09-23 14:24 |只看该作者
把B程序编译成新的激活组试试。

论坛徽章:
0
8 [报告]
发表于 2013-09-23 17:28 |只看该作者
回复 7# pacman2000
怎么操作?

   

论坛徽章:
5
2015亚冠之阿尔艾因
日期:2015-08-10 02:23:34操作系统版块每日发帖之星
日期:2015-08-13 06:20:002015七夕节徽章
日期:2015-08-21 11:06:1715-16赛季CBA联赛之山西
日期:2016-04-13 02:36:59操作系统版块每日发帖之星
日期:2016-04-14 06:20:00
9 [报告]
发表于 2013-09-23 18:51 |只看该作者
xml1988 发表于 2013-09-23 17:28
回复 7# pacman2000
怎么操作?



编译B程序的时候,Activation group选择*NEW,如果有Default activation group,选择*NO。

论坛徽章:
0
10 [报告]
发表于 2013-09-24 13:11 |只看该作者
回复 9# pacman2000


    谢谢,测试去。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP