VC开发的DLL,有一函数申明如下:
LONG CO_SerialStart(LONG lUserID,LONG lSerialPort,void(CALLBACK *fSerialDataCallBack)(LONG lSerialHandle,char *pRecvDataBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);在C#中相应的申明如下:
[ DllImport( "XXX.dll" )]
public static extern int CO_SerialStart(int lUserID, int lSerialPort, [ MarshalAs( UnmanagedType.FunctionPtr )]SerialDataCallBack* fSerialDataCallBack , uint dwUser);
对应的回调函数如下:
public delegate void SerialDataCallBack(int lSerialHandle, string pRecvDataBuffer, uint dwBufSize, uint dwUser);调用如下:
SerialDataCallBack sdCallBack = new SerialDataCallBack(My_CallBack_Function_Name);
int t = Co_SerialStart(userId, serialPort, sdCallBack, 0); 问题:
t的返回值正确,但我的回调函数(My_CallBack_Function_Name)没有执行,也没有错误产生,请问该如何解决,或给些建议也好。多谢!
LONG CO_SerialStart(LONG lUserID,LONG lSerialPort,void(CALLBACK *fSerialDataCallBack)(LONG lSerialHandle,char *pRecvDataBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);在C#中相应的申明如下:
[ DllImport( "XXX.dll" )]
public static extern int CO_SerialStart(int lUserID, int lSerialPort, [ MarshalAs( UnmanagedType.FunctionPtr )]SerialDataCallBack* fSerialDataCallBack , uint dwUser);
对应的回调函数如下:
public delegate void SerialDataCallBack(int lSerialHandle, string pRecvDataBuffer, uint dwBufSize, uint dwUser);调用如下:
SerialDataCallBack sdCallBack = new SerialDataCallBack(My_CallBack_Function_Name);
int t = Co_SerialStart(userId, serialPort, sdCallBack, 0); 问题:
t的返回值正确,但我的回调函数(My_CallBack_Function_Name)没有执行,也没有错误产生,请问该如何解决,或给些建议也好。多谢!
public static extern int CO_SerialStart(int lUserID, int lSerialPort, [ MarshalAs( UnmanagedType.FunctionPtr )]SerialDataCallBack fSerialDataCallBack , uint dwUser);