gpt4 book ai didi

c++ - 传递类成员的函数指针

转载 作者:行者123 更新时间:2023-11-30 04:32:41 27 4
gpt4 key购买 nike

Service::serviceCtlHandler(DWORD OpCode)
{
//...
}

Service::ServiceStart
{
//...
serviceStatusHandle = RegisterServiceCtrlHandler("Service", &Service::serviceCtrlHandler /*incompatible*/);
//...
}

如何获得兼容指针?

最佳答案

您需要将serviceCtlHandler 函数设置为static,这意味着它将无法访问任何对象成员。这是因为 RegisterServiceCtrlHandler 需要一个未绑定(bind)到对象的函数指针,并且不会接收隐含的 this 指针。

如果您改用 RegisterServiceCtrlHandlerEx,您可以传递一个指向该对象的指针,并让静态函数在正确转换指针后调用另一个成员函数。

关于c++ - 传递类成员的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474765/

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