引用第1楼snailbing于2009-11-18 16:13发表的 :
在linux下接收系统信号 可以看一下 signal 函数。主要处理的是 SIGINT 和 SIGTERM 信号。
在windows下调用系统的API了,SetConsoleCtrlHandler 函数。
自己可以写一个函数来绑定这些信号或操作,当这个函数做触发时我可以发出一个 Qt 的 signal 让指定的 SLOT来接收。
我在类文件中定义了SetConsoleCtrlHandler中绑定的handler函数,函数实现是发送一个qt信号,但代码如下,会出现错误:信号没有定义的情况。
......
#include <windows.h>
......
BOOL WINAPI tellColsePlayer(DWORD cEvent)
{
emit colsePlayer(); //closePlayer()是Core类中声明的一个信号
}
Core::Core()
{
......
SetConsoleCtrlHandler(tellColsePlayer, TRUE);
........
}
如果改用
BOOL WINAPI tellColsePlayer(DWORD cEvent)
{
emit Core::colsePlayer(); //closePlayer()是Core类中声明的一个信号
}
则报colsePlayer是受保护的错误信息。
我要怎样才能在外部函数给类发信号呢~~~~~~~~~?????
请高手帮忙看下
[ 此帖被nikshuang在2009-11-18 18:22重新编辑 ]