如何用C#创建事件句柄传入C++写的驱动Dll?
C++写的驱动头文件如下:
ZT_API long _stdcall ZT518_OpenIRQ(unsigned long cardNO,
long hEventSFifo,
long hEventHFifoFewData,
long hEventHFifoHalf,
long hEventEI1,
long hEventEI2,
long hEventADFinish);
其中:
// hEventSFifo:是驱动缓冲区(SFIFO)到达阀值事件句柄
// 由用户建立一个事件,然后把事件句柄传入驱动,当SFIFO到达阀值事件产生后,
// 驱动会将这个事件设置为有信号状态,从而唤醒用户建立的用来等待的线程。
// 如果用户不需要用到多线程,请保持这个参数为0
不知道如何在C#创建事件句柄,并传入这个Dll函数?
[DllImport("pm518.dll")]
public static extern int ZT518_OpenIRQ(int cardNO,
int hEventSFifo,
int hEventHFifoFewData,
int hEventHFifoHalf,
int hEventEI1,
int hEventEI2,
int hEventADFinish);
[解决办法]
[DllImport("pm518.dll")]public static extern int ZT518_OpenIRQ( int cardNO, SafeWaitHandle hEventSFifo, ... );AutoResetEvent eventSFifo = new AutoResetEvent(false);//ThreadPool.RegisterWaitForSingleObject(eventSFifo.SafeWaitHandle, OnEventSFifo, null, 0, true);OpenIRQ(cardNO, eventSFifo.SafeWaitHandle, ...);
[解决办法]