使用非托管代码中的DLR

是否有可能调用托管代码,特别是IronRuby或IronPython从非托管代码,如c++或Delphi?

例如,我们有一个用Delphi编写的应用程序,现在要转移到c#。NET我们希望在我们的新应用程序中提供Ruby或Python脚本来取代VBSCRIPT。但是,我们需要在旧的Delphi应用程序中提供Ruby/Python脚本。是否可以从Delphi代码中使用IronRuby/IronPython提供的托管dll ?

请先 登录 后评论

6 个回答

Lars Truijens

是的。这可以使用Com可调用包装器实现。基本上,你可以通过COM/ActiveX从win32代码(Delphi或c++)调用你的. net类。

请先 登录 后评论
Karg

可以在非托管代码中托管CLR或DLR,因为它是一个COM组件。从那里,您可以加载需要与之交互的托管程序集。

来自MSDN:托管公共语言运行库

请先 登录 后评论
Lars Fosdal

是的。Delphi for Win32的例子在这里:http://interop.managed-vcl.com/
展示了如何使用c#以及Delphi。NET汇编从Delphi的Win32。

请先 登录 后评论
Vegar

你在RemObjects里看到九头蛇了吗?我没有这方面的经验,但从介绍来看,它似乎是相关的。

请先 登录 后评论
fuzzyman

为什么不嵌入CPython呢,它有一个直接从C/ c++中使用的API。你失去了多种语言的优势,但可能会获得简单性。

请先 登录 后评论
Lukas Cenovsky

我使用Unmanaged Exports在c#中创建接口到IronPython脚本引擎。当你从Win32 Delphi中使用。net代码时要小心——你必须使用 Set8087CW($133F); 更改浮点异常行为。

请先 登录 后评论
  • 4 关注
  • 0 收藏,218 浏览
  • Bob Wintemberg 提出于 2022-12-17 18:36