Я сделал это, чтобы вызвать неуправляемую функцию из кода C. pCallback - это указатель на функцию, так что управляемая сторона является делегатом.Исключение C# при вызове функции обратного вызова
[DllImport("MyDLL.dll")]
public static extern Result SetCallback(
IntPtr handle,
Delegate pCallback,
CallbackType Type);
Теперь я устанавливаю
private delegate void pfnCallback(uint PromptID, ttsEventType evt, IntPtr lData);
private pfnCallback cb = new pfnCallback(cback);
public Form1()
{
(...)
Wrapper.SetCallback(handle, cb, IntPtr.Zero, CallBackType.DEFAULT);
(...)
public static void cback(uint PromptID, ttsEventType evt, IntPtr lData)
{ }
}
При отладке, я вижу, что она выполняет функцию CBack один раз, а затем я получаю исключение без данных, просто говоря, «необработанное win32 исключение произошло в WindowsApp2.vshost.exe [4372]. Я не понимаю, что это не так. Может кто-нибудь мне помочь?
Он работал !!! Большое спасибо! – jose