0

使用 COM 互操作在 Delphi Prism 中实例化 COM 对象的正确语法是什么 - new 似乎无法完成这项工作。

我已将其添加为网站项目的参考。以下是相关代码:

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

1 回答 1

4

您可以尝试使用系统中的CreateInstance方法来实例化您的 COM 对象。活化剂类。等效代码可能如下所示:

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

请注意,您需要使用 Program Identifier从GetTypeFromProgID获取类型,否则您将生成InvalidComObjectException

于 2009-11-17T12:17:55.503 回答