我已经创建了这个代码来从C代码中调用未托管的函数。pCallback是一个函数指针,因此在托管端是一个委托。
[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函数,然后我收到了一个没有数据的异常,只是说“在WindowsApp2.vshost.exe[4372]中发生了未处理的win32异常”。我不明白出了什么问题。有人可以帮我吗?