C++ SetWindowsHookExA 错误:无法将参数 2 从 lambda 表达式转换为 HOOKPROC
这个错误提示是因为在调用 SetWindowsHookExA 函数时,第二个参数需要传入一个指向 HOOKPROC 类型函数的指针,而你传入的是一个 lambda 表达式。lambda 表达式不能直接转换为 HOOKPROC 类型的函数指针。
要解决这个问题,你可以将 lambda 表达式转换为函数指针。具体做法是在 lambda 表达式前面加上 '&',然后在参数列表后面加上相应的参数类型。例如:
HHOOK hook = SetWindowsHookExA(WH_MOUSE_LL, &MiddleMouseClickListener::listen, hInstance, 0);
这样就可以将 lambda 表达式转换为函数指针,并且编译器就可以正确地识别参数类型了。
原文地址: https://www.cveoy.top/t/topic/olXN 著作权归作者所有。请勿转载和采集!