2009-11-17 66 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获取类型。