C# 错误指针参数未指向可访问内存

C# 错误指针参数未指向可访问内存,c#,cen-xfs,C#,Cen Xfs,我使用CEN XFS标准构建应用程序,然后我在CEN XFS文档中得到了这个错误WFS\u ERR\u INVALID\u POINTER,意思是指针参数不指向可访问内存。但我不知道这个错误是什么 我的wfsecute如下所示: [StructLayout(LayoutKind.Explicit), Serializable] public struct WFSResult { [FieldOffset(0), MarshalAs(UnmanagedTyp

我使用CEN XFS标准构建应用程序,然后我在CEN XFS文档中得到了这个错误
WFS\u ERR\u INVALID\u POINTER
,意思是指针参数不指向可访问内存。但我不知道这个错误是什么

我的wfsecute如下所示:

    [StructLayout(LayoutKind.Explicit), Serializable]
    public struct WFSResult
    {
        [FieldOffset(0), MarshalAs(UnmanagedType.U4)]
        public uint RequestID;

        [FieldOffset(4), MarshalAs(UnmanagedType.U2)]
        public ushort hService;

        [FieldOffset(6), MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
        public Timestamp tsTimestamp;

        [FieldOffset(22), MarshalAs(UnmanagedType.U4)]
        public int hResult;

        [FieldOffset(26), MarshalAs(UnmanagedType.U4)]
        public UInt32 dwCommandCode;

        [FieldOffset(26), MarshalAs(UnmanagedType.U4)]
        public UInt32 dwEventID;

        [FieldOffset(30), MarshalAs(UnmanagedType.U4)]
        public Int32 lpBuffer;
    }
wfsecute(lphService,1401,cardDispense,0,lppResult)

我的父亲是这样认为的:

    [StructLayout(LayoutKind.Explicit), Serializable]
    public struct WFSResult
    {
        [FieldOffset(0), MarshalAs(UnmanagedType.U4)]
        public uint RequestID;

        [FieldOffset(4), MarshalAs(UnmanagedType.U2)]
        public ushort hService;

        [FieldOffset(6), MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
        public Timestamp tsTimestamp;

        [FieldOffset(22), MarshalAs(UnmanagedType.U4)]
        public int hResult;

        [FieldOffset(26), MarshalAs(UnmanagedType.U4)]
        public UInt32 dwCommandCode;

        [FieldOffset(26), MarshalAs(UnmanagedType.U4)]
        public UInt32 dwEventID;

        [FieldOffset(30), MarshalAs(UnmanagedType.U4)]
        public Int32 lpBuffer;
    }

请发表一篇文章,尽管我们不能真正编译或测试它,但是查看所有涉及的类型是很重要的。好的,我们必须猜测wfsecute方法的签名是什么,lphService、cardDispense和lppResult的类型,以及您如何获得这些参数的值。对于初学者来说,在发布的代码中没有可见的指针,所以这都是猜测工作。它可能是
lpbuffer
?“lp”=长指针?如果是这样的话,如何从C#计算该值?或者这将由您调用的代码填充?lphService和cardDispense只是字符串,所以我认为这与我的错误无关…lp是来自CEN XFS文档的名称,所以这没有问题,我认为我的问题在于该结构。。