2009-09-10 164 views
1

我有這個供應商提供的TLB文件,我用它來生成一個Ruby代理類。然而,所述TLB中的問題描述6間的接口和3類:COM:供應商提供的TLB文件

AcdAutomationServer(I)

AcdAutomationServerClass(C)

AcdEvent(I)

AcdEventClass(C)

AcdObject(I)

AcdObjectClass(C)

IAcdAutomationServer(I)

IAcdEvent(I)

IAcdObject(I)

但運行Ruby的1.8.6 WIN32OLE庫類的OLEGEN工具(位於\ DOC \紅寶石\紅寶石1.8.6 \樣品\ WIN32OLE)生成包含一個Ruby代理類:

模塊IAcdAutomationServer(...)

類Ccs_Application(...)

模塊IAcdEvent(...)

模塊AcdEvent(...)

模塊IAcdObject(...)

模塊AcdObject( ...)

我需要實例化除Ccs_Application以外的類型的對象!只有模塊,我該如何執行,例如,必須在AcdEvent對象上運行的AcdEvent的方法Connect?

任何有Ruby COM體驗的人?提前致謝!

+1

難道是不是導入到Ruby中的類被簡單地標記爲不可創建? – sharptooth 2009-09-11 12:06:32

+0

@sharptooth - 我認爲這很可能,您應該將其添加爲答案。 – 2009-09-12 13:34:01

回答

0

在Masaki Suketa的幫助下,答案顯示爲here。這隻能在Ruby 1.9的WIN32OLE模塊中實現,因爲它需要實例化WIN32OLE :: VARIANT對象。