是否可以从非托管代码(如C ++或Delphi)调用托管代码,特别是IronRuby或IronPython?
例如,我们有一个用Delphi编写的应用程序正在转移到C#.NET我们想在我们的新应用程序中提供Ruby或Python脚本来替换VBSCRIPT。但是,我们需要在旧的Delphi应用程序中提供Ruby / Python脚本。是否可以使用Delphi代码中IronRuby / IronPython提供的托管dll?
答案 0 :(得分:8)
是。 Delphi for Win32示例:http://interop.managed-vcl.com/
演示如何使用Delphi for Win32的C#和Delphi.NET程序集。
答案 1 :(得分:6)
可以在非托管代码中托管CLR或DLR,因为它是COM组件。从那时起,您可以加载需要与之交互的托管程序集。
答案 2 :(得分:3)
为什么不嵌入CPython,它有一个直接用于C / C ++的API。你失去了多语言优势,但可能会变得简单。
答案 3 :(得分:2)
是。这可以使用Com Callable Wrappers。基本上,您可以通过win32代码(Delphi或C ++)通过COM / ActiveX调用.Net类。
答案 4 :(得分:2)
我使用Unmanaged Exports在C#中创建了IronPython脚本引擎的接口。使用Win32 Delphi中的.NET代码时要小心 - 必须使用Set8087CW($133F);
来更改浮点异常行为。
答案 5 :(得分:0)
你有没有看过RemObjects的Hydra?我对此没有任何经验,但从介绍来看,它看起来很相关。