当前位置:编程学习 > C#/ASP.NET >>

C++写的结构在C#中怎么声明

C++:有这样一个结构:
typedef struct _Event
{
BYTE Code; //event code
BYTE DotID; //controller component ID
WORD reserved; //reserved
SYSTEMTIME Time; //event time
_Event *pNext; //pointer next event;
} TEvent, *PEvent;
函数:int NT_GetEvent(unsigned long LineID, BYTE CtrlID, BYTE *Bagid, BYTE
*EventCount, TEvent *lpEvent);
我现在想在C#中调用这样的结构,我该怎么写啊,麻烦大家指教指教#¥,下面是我自己写的,但有问题,只能读到且只能读一条记录(如设备有1个事件,可以正常使用,但如果有2个或2个以上事件就读不出来)
[StructLayout(LayoutKind.Sequential)]
    //[SerializableAttribute]
   // [ComVisibleAttribute(true)] 
    unsafe public struct PEvent
    {
        public byte Code;
        public byte DotID;
        public ushort reserved;
        public Time Time;
        public  IntPtr pNext;  
    }
函数: [DllImport("TC3XY.dll")]
            public static extern int NT_GetEvent(ushort LineID, short CtrlID, ref short Bagid, ref short EventCount, ref PEvent lpEvent);//获取设备事件
--------------------编程问答-------------------- --------------------编程问答-------------------- 这个结构并不复杂,但你要先确认一件事情:

由谁来分配内存,是调用者,还是被调用者。
--------------------编程问答-------------------- 由被调用者来分配
分配好以后当成一个参数给函数调用

不知道我这样说对不对  我认为是这样 --------------------编程问答-------------------- 我觉得关键是结构里面的
_Event *pNext; //pointer next event;
成员在C#定义有问题
但不知道怎么弄 --------------------编程问答-------------------- 关注+学习!!
帮你顶!! --------------------编程问答-------------------- 用C++不是很好呀,C#的互操作是一种忽攸 --------------------编程问答-------------------- 现在项目需要用C#做
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,