2008-09-16 56 views
5

是否有可能從不受管理的代碼(例如C++或Delphi)調用託管代碼,特別是IronRuby或IronPython?使用來自非託管代碼的DLR

例如,我們用Delphi編寫的應用程序被移動到C#.NET我們想提供Ruby或Python腳本在我們的新的應用程序,以取代VBSCRIPT。但是,我們需要在舊的Delphi應用程序中提供Ruby/Python腳本。是否可以使用Delphi代碼中的IronRuby/IronPython提供的受管dll?

回答

2

是的。這可以使用Com Callable Wrappers。基本上你可以通過你的win32代碼(Delphi或C++)通過COM/ActiveX來調用.Net類。

6

,能夠在主機非託管代碼的CLR或DLR,因爲它是一個COM組件。從這一點開始,您可以加載需要與之交互的託管程序集。

從MSDN:Hosting the Common Language Runtime

0

您看過的RemObjects Hydra?我沒有經驗,但從介紹看,它看起來很相關。

3

爲什麼不嵌入CPython的代替,其具有適合直接從C/C++中使用的API。你失去了多種語言優勢,但可能會獲得簡單性。

2

我用Unmanaged Exports在C#創建接口IronPython的腳本引擎。當您使用Win32 Delphi的.NET代碼時請小心 - 您必須使用Set8087CW($133F);來更改浮點異常行爲。