【发布时间】:2014-07-20 12:12:39
【问题描述】:
我想在 4GL Progress OpenEdge 中使用用 C# 编写的 .NET 类库,但我没有找到好的工作示例。进步说可以做我想做的事,但是没用。
【问题讨论】:
标签: c# progress-4gl openedge dllregistration
我想在 4GL Progress OpenEdge 中使用用 C# 编写的 .NET 类库,但我没有找到好的工作示例。进步说可以做我想做的事,但是没用。
【问题讨论】:
标签: c# progress-4gl openedge dllregistration
根据 Progress 的版本,可能会在 4GL 中本地调用 .Net 类。然而,这有一些限制。例如,进度是非常单线程的,无法处理多线程 .Net 类(例如,如果事件发生在第二个线程中)。在 10.2B 左右添加了基本支持,但后来又增加了。
您可以查看这些(大)文档:
它们主要是关于 GUI 编程,但可以作为参考。
您需要做的第一件事是设置一个assembly.xml 文件以将您的组件/类添加到您的环境中。之后,这取决于您的特定课程,但基本的 OOPABL “非常”简单。
DEFINE VARIABLE c AS CLASS System.Collections.ArrayList.
c = NEW System.Collections.ArrayList().
【讨论】:
The progress knowledgebase states:
可以通过使用从 4GL 调用 .Net 程序集 (DLL) 4GL 和 .Net 程序集之间的 COM (ActiveX) 包装器。这是 您有责任编写 COM (ActiveX) 包装程序。帮助 在实施这超出了技术支持的范围和 我们强烈建议您利用 Microsoft 拥有的资源 可 (msdn.microsoft.com) 为您提供帮助。
这篇文章可能会有所帮助: Calling a .NET Component from a COM Component
祝你好运!
【讨论】: