gpt4 book ai didi

调用回调函数时出现C#异常

转载 作者:行者123 更新时间:2023-11-30 14:43:10 28 4
gpt4 key购买 nike

我这样做是为了从 C 代码调用非托管函数。 pCallback 是一个函数指针,因此在托管端是一个委托(delegate)。

[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 异常。我不明白这是什么错了。谁能帮帮我?

最佳答案

尝试调用 Marshal.GetLastWin32Error() 来获取 Win32 错误代码。

然后将错误代码与此列表进行比较:http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspx

它仍然没有一个好的异常对象那么多信息,但它可能会为您指明正确的方向。

关于调用回调函数时出现C#异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282125/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com