我尝试从库中调用函数以获取有关机器的一些信息。但是我得到一个异常 SystemLoadException: Type IODBPSD_3 from GetAlmMsg, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 无法读取,第 4 位有一个对象,该对象被错误地舍入或被非对象数组覆盖。你能给个建议吗?不幸的是,我根本不理解 IODBPSD_3 类的逻辑。非常感谢您的帮助。
拉德克
public Focas1.IODBPSD_3 prmData = new Focas1.IODBPSD_3();//my call
……
//附加到机器的FOCAS库-不是我的代码
public class Focas1
{
...
public const short MAX_AXIS = 8;
[StructLayout(LayoutKind.Explicit)]
public class IODBPSD_3
{
[ FieldOffset( 0 )]
public short datano ; /* data number */
[ FieldOffset( 2 )]
public short type ; /* axis number */
[ FieldOffset( 4 ),
MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)]
public byte[] cdatas = new byte[MAX_AXIS];
[ FieldOffset( 4 ),
MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)]
public short[] idatas = new short[MAX_AXIS];
[ FieldOffset( 4 ),
MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)]
public int[] ldatas = new int[MAX_AXIS];
}
...
}