0

我知道 UNIX 上的 C 在signal()某些操作后必须调用某些函数。我在 Windows 上需要它。我发现,它从这里存在。但我不明白如何正确使用它。

我像在 UNIX 中一样尝试过:

signal(SIGINT, signalFunction);    //attach function to signal

void CRegBackupWiz::signalFunction(int sigNum)    //function
{
    m_Parent->SetWizard (swContinueFix);
}

我找不到,我的代码有什么问题。感谢您的建议,我很感激。

4

2 回答 2

1

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

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

于 2013-06-27T12:25:25.593 回答
0

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

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

于 2013-06-27T12:24:02.580 回答