我可以使用成员函数作为第一个参数吗EnumWindows
?即使在这种情况下我也没有看到任何解决方法boost::bind
.
鉴于这种normal回调函数:
BOOL CALLBACK EnumWindowsProc(HWND wnd, LPARAM lParam);
您可以调用EnumWindows
using lParam
将其传递给您的类的指针:
EnumWindows(EnumWindowsProc, reinterpret_cast<LPARAM>(this));
In EnumWindowsProc
您可以简单地调用成员函数(强制转换lParam
根据您的班级类型)。像这样:
BOOL CALLBACK EnumWindowsProc(HWND wnd, LPARAM lParam)
{
return reinterpret_cast<MyClass*>(lParam)->EnumWindows(wnd);
}
如果您不想公开您的类方法,您可以:
- 打包一个结构体以包含类实例和指向成员的指针。
- 使用库代表们.
- 使用升压
std:bind
(在这种情况下,它会很好地工作,因为您对自己的班级成员进行了操作,不必是__stdcall
).
无论您将使用什么,您都可以在以下位置找到更多详细信息这个帖子 https://stackoverflow.com/questions/151418/calling-a-c-function-pointer-on-a-specific-object-instance这里就这样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)