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
的Interop定义如下:
[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)
有人遇到类似问题并知道解决方法吗?