2009-11-17 5 views
0

COM interop을 사용하여 Delphi Prism에서 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 클래스입니다. 이에 해당하는 코드는 다음과 같습니다 당신은 프로그램 식별자 그렇지 않으면 당신은 InvalidComObjectException를 생성하여 GetTypeFromProgID에서 유형을 얻을해야합니다

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

참고.

관련 문제