i' ve a serious trouble with a C++ DLL for implement a callback event and use this in C#. Those are the two native function :
long FUNC_RegisterEventHandler(EventHandler handler, BYTE evmask, LONG param);
void EventHandlerFunc(WORD event_id, LPVOID data, LONG param);
My implementation:
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
public delegate void CCC_EventHandler(string event_id, object data, int param);
[DllImport(@"QSN.DLL")]
public static extern int CCC_RegisterEventHandler(CCC_EventHandler handler, byte evmask, int param);
private void RegisterEvent() {
QSN_Library.CCC_EventHandler delegato = FireEvento();
IntPtr val = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(delegato);
QSN_Library.CCC_RegisterEventHandler(delegato, 0xff, 0);
System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(val,
typeof(QSN_Library.CCC_EventHandler));
}
private QSN_Library.CCC_EventHandler FireEvento() {
return new QSN_Library.CCC_EventHandler((string a,
object b, int c) => {
});
}
Nothing to do... Any suggestion ?