首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用非托管dll时出错

调用非托管dll时出错
EN

Stack Overflow用户
提问于 2013-05-28 23:47:50
回答 1查看 247关注 0票数 0

我尝试从库中调用函数来获取有关机器的一些信息。然而,我得到一个异常SystemLoadException:类型IODBPSD_3从GetAlmMsg,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null无法被读取,有一个对象在第4个位置,这是错误的四舍五入或被一个非对象array.Could覆盖请给我一个建议,该怎么做?不幸的是,我根本不理解IODBPSD_3类的逻辑。非常感谢你的帮助。

Radek

代码语言:javascript
复制
public Focas1.IODBPSD_3 prmData = new Focas1.IODBPSD_3();//my call

……

//机器的FOCAS库附件-不是我的代码

代码语言:javascript
复制
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];
    }
    ...
}
EN

回答 1

Stack Overflow用户

发布于 2013-05-29 14:55:41

问题出在编译方面。我创建了32b处理器,程序现在正在工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16796285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档