如何在windows平台上使用c++信号

how to use c++ signals on windows platform

本文关键字:c++ 信号 平台 windows      更新时间:2023-10-16

我知道UNIX上的C有signal(),可以在执行一些操作后调用一些函数。我需要在Windows上使用它。我发现了,它从这里存在。但我不知道如何正确使用它。

我像在UNIX:中一样尝试过

signal(SIGINT, signalFunction);    //attach function to signal
void CRegBackupWiz::signalFunction(int sigNum)    //function
{
    m_Parent->SetWizard (swContinueFix);
}

我找不到,我的代码出了什么问题。谢谢你的建议,我很感激。

好的,所以您需要了解如何使用函数指针,特别是如何使用指向成员函数的指针:http://www.parashift.com/c++-faq/pointers-to-members.html.

通常,如果使用指向函数的指针作为回调机制,则应使用顶级自由函数(非成员)作为包装器。请参见此处:http://www.parashift.com/c++-faq/memfnptr-vs-fnptr.html

该代码实际上也不能在Unix下工作。

指向成员的指针与普通指针不同——您需要使用自由函数或静态成员函数。