0

我发现了这个关于从 Ruby 连接到 ac# dll 的好教程: Can Ruby import a .NET dll? 这适用于 Ruby=>C#,但不适用于 c#=>Ruby。现在我正在考虑使用一些 Ruby 可以连接的自定义事件。我遵循此页面中的示例 A:http: //msdn.microsoft.com/en-us/library/aa645739 (v=vs.71).aspx创建自定义事件。

现在的问题是,我如何从 ruby​​ 链接到这个事件?在excel中我会这样做:

xl_workbook_events = WIN32OLE_EVENT.new(xl_book, 'WorkbookEvents')
xl_workbook_events.on_event('SheetSelectionChange') do
    # do something when the selection has changed.
end#do

但是,对于自定义 c# 事件,我不知道.. 问候,

4

1 回答 1

0

好的,所以,要在 C# 中制作一个 com 可访问的 DLL:http: //www.codeproject.com/Articles/23355/Callback-Functions-and-NET-C-COM-Components

绑定到来自 ruby​​ 的事件:

require 'win32ole’
ole_connection = WIN32OLE.new(“YourNameSpace.YourClassName”)
event = WIN32OLE_EVENT.new(ole_connection)
event.on_event(‘NameOfYourEvent’) do |args| # NameOfYourEvent should be specified in 'CallBackEventInterface' from the example, like: 'TheEvent'. when using that event, arg should containt 'string msg'
    # do some work
    puts args.to_s
end#do
于 2013-06-07T16:17:05.083 回答