900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C#使用SetWindowsHookEx时报错“类型的已垃圾回收委托进行了回调”

C#使用SetWindowsHookEx时报错“类型的已垃圾回收委托进行了回调”

时间:2018-11-03 02:55:54

相关推荐

C#使用SetWindowsHookEx时报错“类型的已垃圾回收委托进行了回调”

报错:

”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。”

解决:

将代码从

public void Hook(){// FnHookProc为处理函数PHook = SetWindowsHookEx(5, FnHookProc, 0, AppDomain.GetCurrentThreadId());}

改为

internal HOOKPROC PHookProc = null;public void Hook(){// HOOKPROC为委托PHookProc = new HOOKPROC(FnHookProc);PHook = SetWindowsHookEx(5, PHookProc, 0, AppDomain.GetCurrentThreadId());}

PS:

1、创建委托后,再作为参数传递给函数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。