日期:2014-05-17  浏览次数:21231 次

OPC协议开发中引用类库OPCDAAuto.dll问题
在C#中引用了OPCDAAuto.dll注册的类库。
但是该类的类库中的Connect方法,老报“对 COM 组件的调用返回了错误 HRESULT E_FAIL”错误。
请问该问题怎么解决?

代码如下:
  //获取本地计算机上的OPCServerName
            try
            {
                OPCServer KepServer = new OPCServer();
                object serverList = KepServer.GetOPCServers(strHostName);

                foreach (string turn in (Array)serverList)
                {
                    cmbServerName.Items.Add(turn);
                }

                cmbServerName.SelectedIndex = 0;
                btnConnServer.Enabled = true;
            }
            catch(Exception err)
            {
                MessageBox.Show("枚举本地OPC服务器出错:"+err.Message,"提示信息",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }

以上内容是没问题,表示DLL类库引用是正常的。

但是运行到下面这句就出错了
 KepServer.Connect(remoteServerName, remoteServerIP);

报错信息:对 COM 组件的调用返回了错误 HRESULT E_FAIL
------解决方案--------------------
用命令行试下 regsvr32 OPCDAAuto.dll
------解决方案--------------------
引用:
用命令行试下 regsvr32 OPCDAAuto.dll


肯定注册了DLL,不注册怎么引用类库
------解决方案--------------------
没人吗?
------解决方案--------------------
没人知道这个问题?
------解决方案--------------------
 KepServer.Connect(remoteServerName, remoteServerIP);
 remoteServerName  remoteServerIP 检查这两个参数是否传递正确  。一般传错了IP会导致这个BUG
------解决方案--------------------
我也遇到了这个问题,百度了好久都没解决,后来把IP自动获取的改为固定的了,然后就好了,不知道为什么