从非托管代码使用 DLR
-
09-06-2019 - |
题
是否可以从非托管代码(例如 C++ 或 Delphi)调用托管代码,特别是 IronRuby 或 IronPython?
例如,我们有一个用 Delphi 编写的应用程序,该应用程序正在迁移到 C#.NET。我们希望在新应用程序中提供 Ruby 或 Python 脚本来替换 VBSCRIPT。然而,我们需要在旧的 Delphi 应用程序中提供 Ruby/Python 脚本。是否可以从 Delphi 代码使用 IronRuby/IronPython 提供的托管 dll?
解决方案
是的。Delphi for Win32 示例如下: http://interop.management-vcl.com/
演示如何使用 C# 以及 Delphi for Win32 中的 Delphi.NET 程序集。
其他提示
可以在非托管代码中托管 CLR 或 DLR,因为它是 COM 组件。从那时起,您可以加载需要与之交互的托管程序集。
来自 MSDN: 托管公共语言运行时
为什么不嵌入 CPython,它有一个旨在直接从 C/C++ 使用的 API。您失去了多语言优势,但可能获得了简单性。
是的。这是可能的使用 Com 可调用包装器. 。基本上,您可以通过 COM/ActiveX 从 win32 代码(Delphi 或 C++)调用 .Net 类。
我用 不受管理的出口 在 C# 中创建 IronPython 脚本引擎的接口。当您使用 Win32 Delphi 中的 .NET 代码时要小心 - 您必须使用 Set8087CW($133F);
更改浮点异常行为。
你见过吗 九头蛇 来自 RemObjects?我没有这方面的经验,但从介绍来看,它看起来很相关。
不隶属于 StackOverflow