调用回调函数程序崩溃

我设置了pExtDevfunCb用于接收回调函数的指针

boost::function<void (int, const char*, size_t)> pExtDevfunCb;

这是回调函数指针赋值实现

void ExtDevApp::setCallback(const boost::function<void(int, const char*, size_t)>& callback)
{
    pExtDevfunCb = callback;
    if(pExtDevfunCb)
    {
        OspPrintf(TRUE, FALSE, "[ExtDevApp]pExtDevfunCb is valid \n");
    }
}

ExtDevApp是我的类,里面有pExtDevfunCb和setCallback,在程序开始时就设置了回调

boost::shared_ptr<ExtDevApp> pTmpExtDevImpl(new ExtDevApp);
m_ExtDevPtr = pTmpExtDevImpl;
m_ExtDevPtr->setCallback(SubAppMsgRecvCb);

这是使用回调的地方,而且在if()时就出错,函数体没进去。

if(pExtDevfunCb)    
    pExtDevfunCb(EXTDEC_SERIAL_MSG_STATE, (const char*)data, len);

看起来pExtDevfunCb像野指针的样子,找不到原因。希望有大神讲解一下

c++
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问