map / set iterator不是dereferencable

时间:2013-10-05 07:49:18

标签: multithreading visual-c++ boost ptree

问候语

我使用boost ptree来获取一些信息。

typedef ptree MInfo;

在我的应用程序中,我使用以下样式将.put.get信息添加到我的MInfo

a_info.put<WORD>(PathTree(SStatus)(fwDevice).str(), s_status->fwDevice);

WORD y = a_info.get<WORD>(PathTree(SStatus)(fwSensors)(S_SWITCH).str());

在我的新方法中,我使用相同的结构将信息放在我的ptree上以便稍后获取。

HRESULT SBase::getPortStatusEvent(AInfo &a_info, LPARAM lParam)
{
    ...

    using namespace boost::property_tree;

    a_info.put<WORD>(PathTree(SEvent)(wPortType).str(), port_Status->wPortType);      //This Line Cause the Error!!
    a_info.put<WORD>(PathTree(SEvent)(wPortIndex).str(), port_Status->wPortIndex);    //This Line Cause the Error!!
    a_info.put<WORD>(PathTree(SEvent)(wPortStatus).str(), port_Status->wPortStatus);  //This Line Cause the Error!!

    ....

    return WFS_SUCCESS;
}

我在a_info.put中收到错误。

任何想法?!

1 个答案:

答案 0 :(得分:0)

问题是将此部分映射到实际的字符串路径。

PathTree(SEvent)(wPortType).str()

我自己做了处理它的方法!