2009-11-17 91 views
0

在Delphi Prism中使用COM interop實例化COM對象的正確語法是什麼 - 新似乎沒有做這項工作。如何在Delphi Prism中使用interop實例化COM對象

我已將它添加爲網站項目的參考。下面是相關代碼:

method _Default.Button1_Click(sender: System.Object; e: System.EventArgs); 
var 
    FModel: MarketBuilderLib.MarketBuilderModel; 
begin 
    FModel := New MarketBuilderLib.MarketBuilderModel; 
end; 

無法與消息編譯:

Error 1 
(PE190) "MarketBuilderLib.MarketBuilderModel" is an interface and cannot be 
instantiated 

我理解的消息,但不知道如何做到這一點。非常感謝您的幫助。

回答

4

您可以嘗試使用系統中的CreateInstance方法實例化您的COM對象。 Activator類。等效代碼可能是這樣的:

var 
    FModel: MarketBuilderLib.MarketBuilderModel; 
begin 
    FModel := (MarketBuilderLib.MarketBuilderModel)Activator.CreateInstance(GetTypeFromProgID("{PROG ID}")); 
end; 

請注意,您將需要使用程序標識符否則就會產生一個InvalidComObjectExceptionGetTypeFromProgID獲取類型。