【发布时间】:2017-01-09 11:19:07
【问题描述】:
我正在使用 vs2015/vc++ 生成 XML 文档。我按照 Microsoft 文档中的示例进行操作。首先,我补充一下:
import "msxml6.dll"
using namespace MSXML2;*
然后在主循环中添加这样的代码:
HRESULT hr = pXMLDom.CreateInstance(__uuidof(MSXML2::DOMDocument60), NULL, CLSCTX_INPROC_SERVER);
if (FAILED(hr))
{
printf("Failed to instantiate an XML DOM.\n");
return;
}
try
{
pXMLDom->async = VARIANT_FALSE;
pXMLDom->validateOnParse = VARIANT_FALSE;
pXMLDom->resolveExternals = VARIANT_FALSE;
pXMLDom->preserveWhiteSpace = VARIANT_TRUE;
// Create a processing instruction targeted for xml.
MSXML2::IXMLDOMProcessingInstructionPtr pi = pXMLDom->createProcessingInstruction(L"xml", L"version='1.0'");
pXMLDom->appendChild(pi);
// Create a comment for the document.
MSXML2::IXMLDOMCommentPtr pc = pXMLDom->createComment(L"sample xml file created using XML DOM object.");
pXMLDom->appendChild(pc);
...... }
但是 VS2015 总是告诉我类“MSXML2::IXMLDOMDocument”没有成员“appendChild”。我也无法编译它。我google了很多,但找不到答案。有谁知道原因?谢谢。
【问题讨论】:
-
您没有包含 pXMLDom 的定义。转到它是什么(IXMLDOMDocument?),右键单击,转到定义并检查 appendChild 方法。它应该在那里,所以它可能是一个错字,但这应该会给你一个明确的答案。
-
MSXML2::IXMLDOMDocumentPtr pXMLDom;
-
@Mike 我用右键检查了定义,我得到了两个: IXMLDOMNodePtr appendChild ( struct IXMLDOMNode * newChild ); virtual HRESULT __stdcall raw_appendChild ( /*[in]*/ struct IXMLDOMNode * newChild, /*[out,retval]*/ struct IXMLDOMNode * * outNewChild ) = 0;
-
我也得到这个错误,但我可以编译它。
标签: xml visual-c++ msxml