返回指向IXMLDOMNode的指针作为参数......真是太痛苦了

时间:2016-01-28 16:43:40

标签: c++ dom

我必须提高我的c ++知识,因为我们必须用MS vc ++实现一个特定的模块。好的,这就是我喜欢做的事情: 我有一个全局MS DOMDocument,它包含许多节点。这些节点正在描述对象数据......我收到了一个uniquie objectidentifier,必须在DOM中搜索对象并将其映射到给定的结构......

所以我有这个:

IXMLDOMNode *Node = NULL;
 if (FindObject(objectIdentifier, &Node))
{
nreturn = MapObject(Node, &pVarBind->value);
}

这应该定义一个指向节点的指针,并使用指针的引用调用FindObject方法。如果成功则调用MapObject方法.. 但是" Node"在Findobject之后总是为NULL,但在方法内部它找到它并尝试将其传回...

Findobject看起来像这样:

bool MyController::FindObject(const string aObjectIdentifier, IXMLDOMNode **aObject)    
{
    bool success = false;
    IXMLDOMNode *pXMLEntry = NULL;
//....searching the DOM
    if (success)
    {
        aObject = &pXMLEntry;
    }
return success;
}

任何想法可能出错?

1 个答案:

答案 0 :(得分:3)

在FindObject中,分配

aObject = &pXMLEntry;

您正在做的是覆盖您的本地参数。您要做的是写入参数指向的值,如下所示:

*aObject = pXMLEntry;