Visual Studio 2008(C#)爲我的COM對象創建了Interop。我正在使用的主要對象是:OPCHDAServerClass
,IOPCHDAItems
和OPCHDAItem
。的代碼是:無法將對象...投射到
OPCHDAServerClass server = new OPCHDAServerClass();
server.Connect("OPC.PHDServerHDA.1");
OPCHDAItem item = server.OPCHDAItems.AddItem("MyItem",1);
在第三行中的AddItem
方法應該返回一個OPCHDAItem
。對於AddItem
互操作的定義是:
[DispId(1610743813)]
OPCHDAItem AddItem(string ItemID, int ClientHandle);
,我得到的唯一的例外是:
無法投類型的對象OPCHDAServerClass爲鍵入「IOPCHDAItems」。
我不明白爲什麼我收到此錯誤消息。 server.OPCHDAItems
實施IOPCHDAItems
。我不知道爲什麼服務器(OPCHDAServerClass
)正在轉換爲IOPCHDAItems
?
我在python中進行了初始原型設計,工作正常,所以我知道COM組件是功能性的。這是python代碼:
server = win32com.client.dynamic.Dispatch("Uniformance.OPCHDA.Automation.1")
server.Connect("OPC.PHDServerHDA.1")
item = server.OPCHDAItems.AddItem("MyItem", 1)
有沒有人看到類似的問題,並知道工作?
你說這是你在做peudo代碼,但你是什麼實際的代碼?另外,OPCHDAServerClass實際上是否有一個名爲OPCHDAItems的屬性? – user1610015
避免使用以「Class」結尾的類型名稱。它們是COM服務器中實際不存在的合成類型,在某些情況下可能會導致此類問題。嘗試新增OPCHDAServer或IOPCHDAServer –
您可以介入生成的COM嗎? – silverjam