是否可以从非托管代码(如C ++或Delphi)调用托管代码,特别是IronRuby或IronPython?

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

===============>>#1 票数:8 已采纳

是。 Delphi for Win32示例: http//interop.managed-vcl.com/
演示如何使用Delphi for Win32的C#和Delphi.NET程序集。

===============>>#2 票数:6

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

从MSDN: 托管公共语言运行时

===============>>#3 票数:3

为什么不嵌入CPython,它有一个直接用于C / C ++的API。 你失去了多语言优势,但可能会变得简单。

===============>>#4 票数:2

我使用Unmanaged Exports在C#中创建了IronPython脚本引擎的接口。 使用Win32 Delphi的.NET代码时要小心 - 你必须使用Set8087CW($133F); 更改浮点异常行为。

===============>>#5 票数:2

是。 这可以使用Com Callable Wrappers 基本上,您可以通过win32代码(Delphi或C ++)通过COM / ActiveX调用.Net类。

===============>>#6 票数:0

你看过RemObjects的Hydra吗? 我没有经验,但从介绍来看,它看起来很相关。

  ask by Bob Wintemberg translate from so

未解决问题?本站智能推荐:

1回复

在最低安全性上下文中运行DLR嵌入式脚本

我需要指出正确的方向。 我已经将Iron Python脚本主机嵌入到一个简单的C#应用​​程序中,但现在我需要了解锁定用户生成的IronPython或IronRuby脚本的安全性的最佳实践。 具体来说,什么是防止库导入的策略,并且在.NET中没有办法在不同的安全上下文中运行代码块或线程,
1回复

在DLR脚本主机上执行脚本时,如何获取运行时上下文?

目前,我正在做一个案例研究,以将IronRuby集成到我们的核心产品之一中。 脚本的执行只能以同步方式进行,因此我计划在每个线程中执行脚本。 但除此之外,我还需要对脚本执行进行更多控制,尤其是。 我需要一种挂起脚本并在以后的时间点恢复它的方法。 我想我需要存储一个stackframe
2回复

用代码而不是app.config进行程序集重定向

我正在使用ironruby执行脚本来加载程序集,该程序集的依赖关系需要在app.config中从v2.0.0.0重定向到v3.5.0.0,如下所示: 脚本与此重定向一起使用,但这需要我始终更改ironruby app.config,并且它适用于所有脚本。 我需要: 为单个脚本
1回复

使用IronRuby或IronPython修改C#对象列表

如果我有一个对象列表,例如。 List<Foo> ,其中Foo具有几个属性,然后我可以创建一个或多个针对每一行运行的ironruby或ironpython脚本。 这是一些伪代码: 我需要一种动态的方式来修改代码存储在数据库或文件中的列表。 如果您认为有更好的方法
4回复

如何使用非托管代码中的托管代码?

如何从本机C ++调用.NET代码(非托管代码)? 我想将.NET代码公开给非托管(C ++)应用程序,然后使用它们。 更具体地说,我想从本地C ++调用C#:)。 我知道有很多方法,但是您能告诉我每种方法的优缺点吗? 顺便说一句,我不想​​使用COM,所以现在有什么选择? 是否可
13回复

编程中的托管代码或非托管代码是什么?

我在我的C#代码中使用了一个特定的命令,它运行良好。 但是,据说它在“非托管”代码中行为不端。 什么是托管代码或非托管代码?
1回复

可以将.Net DLR托管在“防白痴”沙箱中吗?

我想以一种这样的方式托管动态语言运行时(DLR),即在其中运行任意脚本的用户不能降低该进程的速度吗? DLR托管规范描述了如何在单独的ApplicationDomain中托管DLR。 这允许拆除和卸载脚本运行时,并通过CAS限制某些操作(例如,我可以限制文件系统访问或禁止使用反射)。
3回复

是否可以使用托管代码中的C#反射来调用非托管代码?

是否可以使用反射和C#.NET在.NET出现(非托管代码)之前调用用C或C ++编写的动态不同的函数(带有参数)? 如果可能的话,还可以赞美C#示例! 谢谢! Br,米兰。
2回复

使用托管代码中的非托管代码

我的项目是在MFC中开发的,这是一个未经编码的代码。 现在我需要通过重用大多数MFC类在C#中创建一个类似的应用程序。 是否可以直接从MFC dll导出class / struct / enum,这样我就可以使用dllimport在我的C#中导入它并使用它。
2回复

在.net中使用非托管代码

案子: 有一个.net应用程序调用非托管C代码。 为此使用的方法: 在Windows窗体应用程序中使用它,所需文件名由OpenFileDialog获得。 码: 问题: 在Windows窗体应用程序中多次执行代码后,openFileDialog异常中断: “试图读取