Visual Studio 2008 (C#) 为我的 COM 对象创建了互操作。我使用的主要对象是: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
。我不知道为什么 server( 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)
有没有人见过类似的问题并知道解决方法?