【发布时间】:2009-12-01 03:18:42
【问题描述】:
如何在 ruby 中调用 C# dll?
【问题讨论】:
-
不是一个骗子(至少是引用的问题)——那是关于调用非托管代码,这个是关于托管的。
标签: c# .net ruby-on-rails ruby dll
如何在 ruby 中调用 C# dll?
【问题讨论】:
标签: c# .net ruby-on-rails ruby dll
【讨论】:
您还可以使用托管 C++ 编写本机 -> C# 包装 DLL
将你想要的所有函数导出为 DLL 中的 C 调用,例如
extern "C" __declspec ( dllexport ) void CallManagedMethod() {
Something^ myManagedObject ...
}
然后使用 FFI 从 Ruby 调用该 DLL https://github.com/ffi/ffi
【讨论】:
您可以使用非托管导出 (https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports) 在 C# 中创建一个非托管条目。 例如,您可以创建一个 init_youmodulename,这是 ruby 扩展所必需的。 然后你可以使用 require 'youmodulename' 在 ruby 中加载它。
此链接 (https://bitbucket.org/icehuli/sucsexttutorial) 有几个示例。虽然它的目标是为 Sketchup 提供 ruby 扩展,但了解它的工作原理可能对您来说仍然很有趣。
【讨论】:
使用 IronRuby http://ironruby.net/
【讨论】: