2013-02-18 6 views
0

я нашел хороший учебник по подключению к DLL C# от Ruby: Can Ruby import a .NET dll? Это прекрасно работает для рубинового => C#, но не для C# => Ruby. Теперь я думал работать с некоторыми пользовательскими событиями, к которым может подключиться Ruby. Я последовал примеру A с этой страницы: http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx для создания пользовательского события.рубин WIN32OLE C# DLL пользовательского события прослушивания

Возникает вопрос, как мне связать это событие с рубином? В первенствует я хотел бы сделать:

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# события, я понятия не имею .. С уважением,

ответ

0

Ok, так, чтобы сделать ком доступной DLL в C#: http://www.codeproject.com/Articles/23355/Callback-Functions-and-NET-C-COM-Components

чтобы привязать к событиям из рубина:

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 

 Смежные вопросы

  • Нет связанных вопросов^_^