Visual Studio 2008 (C#) は、COM オブジェクトの相互運用機能を作成しました。私が使用している主なオブジェクトはOPCHDAServerClass
、 、IOPCHDAItems
、およびOPCHDAItem
です。コードは次のとおりです。
OPCHDAServerClass server = new OPCHDAServerClass();
server.Connect("OPC.PHDServerHDA.1");
OPCHDAItem item = server.OPCHDAItems.AddItem("MyItem",1);
3 行目で、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)
誰かが同様の問題を見て、回避策を知っていますか?