我必须提高我的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;
}
任何想法可能出错?
答案 0 :(得分:3)
在FindObject中,分配
时aObject = &pXMLEntry;
您正在做的是覆盖您的本地参数。您要做的是写入参数指向的值,如下所示:
*aObject = pXMLEntry;