C++函子作为函数指针
我有一个 Functor,需要将其发送到一个接收函数指针作为参数的函数(例如 CreateThread)。
我可以以某种方式将其转换为静态方法地址吗?如果没有,我该怎么做?
I have a Functor which I need to send to a function which receives a function pointer as a parameter (such as CreateThread
).
Can I convert it to a static method address somehow? And if not, how can I do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,您不能将类类型对象转换为函数指针。
但是,您可以编写一个非成员包装函数来调用正确实例上的成员函数。许多API,包括
CreateThread
,允许您提供一个指针,当它调用您的回调时,它将返回给您(对于CreateThread
,这是lpParameter< /代码> 参数)。例如:
No, you can't convert a class-type object to a function pointer.
However, you can write a non-member wrapper function that calls the member function on the right instance. Many APIs, including
CreateThread
, allow you to provide a pointer that it will give back to you when it calls your callback (forCreateThread
, this is thelpParameter
parameter). For example: