Question

Is it possible to call managed code, specifically IronRuby or IronPython from unamanaged code such as C++ or Delphi?

For example, we have an application written in Delphi that is being moved to C#.NET We'd like to provide Ruby or Python scripting in our new application to replace VBSCRIPT. However, we would need to provide Ruby/Python scripting in the old Delphi application. Is it possible to use the managed dlls provided by IronRuby/IronPython from Delphi code?

Was it helpful?

Solution

Yes. Delphi for Win32 example here: http://interop.managed-vcl.com/
Shows how to use a C# as well as a Delphi.NET assembly from Delphi for Win32.

OTHER TIPS

It is possible to host the CLR or DLR in unmanaged code as it is a COM component. From that point you can load the managed assemblies you need to interact with.

From MSDN: Hosting the Common Language Runtime

Why not embed CPython instead, which has an API intended to be used directly from C/C++. You lose the multiple language advantage but probably gain simplicity.

Yes. That is possible using Com Callable Wrappers. Basically you are enabling your .Net classes to be called through COM/ActiveX from your win32 code (Delphi or C++).

I use Unmanaged Exports to created interface to IronPython script engine in C#. Be carefull when you use .NET code from Win32 Delphi - you have to use Set8087CW($133F); to change floating point exception behavior.

Have you seen Hydra from RemObjects? I have no experience with it, but from the intro, it looks relevant.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top