如何在ruby中调用C#dll?
答案 0 :(得分:4)
我可以想到几个可能性:
WIN32OLE
库来调用它; 主题here上有一个帖子。请注意,最后一篇文章实际上来自John Lam(看起来像2009年3月),他似乎很自然地断言RubyCLR仍然有用......
答案 1 :(得分:2)
你也可以写一个原生的 - >使用托管C ++的C#包装器DLL
在DLL中导出您想要作为C调用的所有函数,例如
extern "C" __declspec ( dllexport ) void CallManagedMethod() {
Something^ myManagedObject ...
}
然后使用FFI从Ruby调用该DLL https://github.com/ffi/ffi
答案 2 :(得分:2)
您可以使用非托管导出(https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports) 在c#中创建一个非托管条目。 例如,您可以创建一个init_youmodulename,这是ruby扩展所必需的。 然后你可以使用require'youmodulename'将它加载到ruby中。
此链接(https://bitbucket.org/icehuli/sucsexttutorial)有几个例子。虽然它的目标是Sketchup的ruby扩展,但是你可能仍然有兴趣了解它是如何工作的。
答案 3 :(得分:1)
使用IronRuby http://ironruby.net/