Quali sono le implicazioni o le conseguenze non percepite di un'eccezione all'interno di un delegato utilizzata durante una richiamata non gestita? Qui è la mia situazione:Implicazioni dell'eccezione di lancio in delegato della richiamata non gestita
non gestito C:
int return_callback_val(int (*callback)(void))
{
return callback();
}
Managed C#:
[DllImport("MyDll.dll")]
static extern int return_callback_val(IntPtr callback);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
delegate int CallbackDelegate();
int Callback()
{
throw new Exception();
}
void Main()
{
CallbackDelegate delegate = new CallbackDelegate(Callback);
IntPtr callback = Marshal.GetFunctionPointerForDelegate(delegate);
int returnedVal = return_callback_val(callback);
}
Cosa succede quando lo provi? –