【问题标题】:Delphi app calling cobol app -> errorDelphi 应用程序调用 cobol 应用程序 -> 错误
【发布时间】:2008-12-10 10:22:11
【问题描述】:

我们需要从旧的会计系统中获取数据。我们收到了一个 dll,可以让我们访问所需的数据。它包括一个我们已经导入的类型库。

如果我们从与会计系统相同的目录运行我们的测试应用程序,一切正常。如果我们尝试从不同的目录运行我们的应用程序,我们会收到以下错误:

动态绑定 RTS
运行时 DLL 'OOPS',版本 3.1,入口点 oops 未记录在注册表中,未找到或不符合要求 动态绑定的 COBOL 程序。 RTS 的动态绑定需要: 运行时 DLL 'OOLSM',至少版本 3.1

任何人都可以提供一些有用的信息吗?

我们的目录中是否应该有某种 cobol 运行时?还是在路上?还是在注册表中注册?

谢谢,
- 素食

更新:
设置系统 %path% 以包含会计系统的路径似乎可以解决问题。由于某种原因,将其作为用户变量包含在内并没有相同的效果。

【问题讨论】:

  • 如果我是你,我不会接受这个答案,因为你有更多的问题。编辑您的问题,而不是在评论中提出新问题。只要没有答案被接受,你就会得到更多的关注,从而得到答案。

标签: delphi cobol


【解决方案1】:

您使用的是什么 Cobol? 我已经使用 Microfocus NetExpress 3.1 完成了这一年,并且一切正常。 我编写 COBOL DLL 来访问 COBOL 数据文件,还编写 Delphi DLL 来为旧的 COBOL 系统添加新功能。

是的,我是用来设置运行时路径的,也就是环境变量叫COBDIR,还有其他的,但通常%PATH%和%COBDIR%就够了。

如果您提供更多关于您使用的COBOL编译器的详细信息,以及您正在调用的dll接口如何,我会很容易为您提供帮助。

也许“Dependence Walker”可以帮助您确定缺少哪些运行时文件(如果有的话)。 http://www.dependencywalker.com/

【讨论】:

  • 这很有趣!由于我们收到了一个 dll,我不确定它是如何制作的,但我肯定会问。在我们的测试机器上,COBDIR 被定义为一个用户变量。会计系统的路径也被定义为用户变量。将其移动到系统变量中似乎可以解决问题。
  • 我总是设置为系统变量。
  • 听起来像 Cesar 的建议让你走完了剩下的路,对吧?
【解决方案2】:

如果它在会计应用程序的目录中工作,但不是不同的目录,我会尝试的第一件事是将该目录添加到您的路径中。

【讨论】:

  • 我以为我已经尝试过了,但是进行第二次测试,它确实让我前进了一步。
  • 我收到一个新错误,但是:“加载错误:finale 'm99finale'。错误代码 173, pc = 0, call = 1, seg = 0。”
【解决方案3】:

除非它已经加载到内存中,否则 Windows 会在其 PATH 环境变量中列出的每个位置以及应用程序所在的目录中查找程序请求的 DLL。

【讨论】:

  • 确实如此,但是 COBOL 使用的是 RUNTIME,并且 DLL COBOL 正在寻找的文件应该在 %COBDIR% 系统变量中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
相关资源
最近更新 更多