问题描述
C++:有这样一个结构:typedefstruct_Event{BYTECode;//eventcodeBYTEDotID;//controllercomponentIDWORDreserved;//reservedSYSTEMTIMETime;//eventtime_Event*pNext;//pointernextevent;}TEvent,*PEvent;函数:intNT_GetEvent(unsignedlongLineID,BYTECtrlID,BYTE*Bagid,BYTE*EventCount,TEvent*lpEvent);
我现在想在C#中调用这样的结构,我该怎么写啊,麻烦大家指教指教#¥,下面是我自己写的,但有问题,只能读到且只能读一条记录(如设备有1个事件,可以正常使用,但如果有2个或2个以上事件就读不出来)[StructLayout(LayoutKind.Sequential)]//[SerializableAttribute]//[ComVisibleAttribute(true)]unsafepublicstructPEvent{publicbyteCode;publicbyteDotID;publicushortreserved;publicTimeTime;publicIntPtrpNext;}函数:[DllImport("TC3XY.dll")]publicstaticexternintNT_GetEvent(ushortLineID,shortCtrlID,refshortBagid,refshortEventCount,refPEventlpEvent);//获取设备事件
解决方案
解决方案二:
该回复于2008-06-12 16:22:45被版主删除
解决方案三:
由谁来分配内存,是调用者,还是被调用者。
解决方案四:
由被调用者来分配分配好以后当成一个参数给函数调用不知道我这样说对不对我认为是这样
解决方案五:
我觉得关键是结构里面的_Event*pNext;//pointernextevent;成员在C#定义有问题但不知道怎么弄
解决方案六:
关注+学习!!帮你顶!!
解决方案七:
用C++不是很好呀,C#的互操作是一种忽攸
解决方案八:
现在项目需要用C#做