C++写的结构在C#中怎么声明
C++:有这样一个结构:typedef struct _Event我现在想在C#中调用这样的结构,我该怎么写啊,麻烦大家指教指教#¥,下面是我自己写的,但有问题,只能读到且只能读一条记录(如设备有1个事件,可以正常使用,但如果有2个或2个以上事件就读不出来)
{
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);
[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#