.h 文件
class CCallBack;
//全局对象命名空间
namespace GlobalObject
{
CCallBack *getCallBackObj(); //获取回调函数对象
extern QWidget* gMainWdg; //主窗口全局对象,可以任意地方调用
};
class CCallBack : public QObject
{
Q_OBJECT;
public:
static UINT cloudTaskCallbackFun(void *, CB_CALL_TYPE, void *, size_t);
signals:
void sigTaskStageChange(CB_CALL_PARAM_TASK_STAGE_CHANGE);
};
.cpp
QWidget* GlobalObject::gMainWdg = NULL;
CCallBack *GlobalObject::getCallBackObj()
{
static CCallBack gCallBack;
return &gCallBack;
}
UINT CCallBack::cloudTaskCallbackFun(void * obj, CB_CALL_TYPE callType, void *param, size_t paramSize)
{
CCallBack* pCloudTaskCallback = (CCallBack*)obj;
switch (callType)
{
case CB_CALL_TYPE_TASK_STAGE:
{
//回调函数里处理相应操作
emit pCloudTaskCallback->sigTaskStageChange(taskStageChange); //可以发送信号,通知外面任务处理情况
break;
}
case CB_CALL_TYPE_PROCESS_MSG:
{
break;
}
default:
{
}
}
return 0;
}
//调用方式
registeCBCall(CCallBack::cloudTaskCallbackFun, GlobalObject::getCallBackObj());