大家好,这几天正在研究OPC.服务器端做完了,现在要做一个客户端,我用的是自动化接口OPCDAAuto.dll.
但是遇到一个问题,就是C#调用OPCDAAuto.dll的非托管函数时,老是出现"参数不正确"的异常.
被调用的函数:
HRESULT SyncRead(
[in]           SHORT               Source,
[in]           LONG                NumItems,
[in]           SAFEARRAY(LONG) *   ServerHandles,
[out]          SAFEARRAY(VARIANT)* Values,
[out]          SAFEARRAY(LONG)*    Errors,
[out,optional] VARIANT*            Qualities,
[out,optional] VARIANT*            TimeStamps
);C#调用代码:
//下面这段代码有问题,SyncRead出现异常int[] serverHandles=new int []{item.ServerHandle};
System.Collections .ArrayList al=new ArrayList ();
al.AddRange (serverHandles);
System.Array Handles=al.ToArray (System.Type .GetType ("System.Int32"));System.Array values;
System.Array errors;
object quality;
object timestamp;group.SyncRead ((short)OPCAutomation.OPCDataSource .OPCDevice,1,ref Handles,out values,out errors,out quality,out timestamp);这是我的程序.请求大家帮助