无法使用XMLDocument - "不允许使用不完整类型"

时间:2018-02-28 15:32:44

标签: c++ tinyxml2

我正在尝试解析XML内容 我想使用XMLDocument但是当我像这样使用它时:

XMLDocument doc; 

我收到错误:

  

不允许使用不完整类型

当我搜索此问题时,我发现有些places使用这些库编写示例:

#using <mscorlib.dll>
#using <System.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Schema;

但是当我尝试这个时,我收到了一个错误:

  

#using需要C ++ / CLI模式

为了能够使用XMLDocument对象我需要做什么?

1 个答案:

答案 0 :(得分:2)

如果查看示例源文件xmltest.cpp,您将在顶部看到:

using namespace tinyxml2;

所以当你看到如下代码时:

int example_1()
{
    XMLDocument doc;
    doc.LoadFile( "resources/dream.xml" );

    return doc.ErrorID();
}

实际上是:

int example_1()
{
    tinyxml2::XMLDocument doc;
    doc.LoadFile( "resources/dream.xml" );

    return doc.ErrorID();
}

您必须使用tinyxml2命名空间来标识要使用的正确XMLDocument

  • 将源文件添加到项目时,右键单击cpp文件并选择属性

Properties

  • 接下来,您需要告诉它不要使用预编译标题

Not use precompiled headers

现在您不需要#include stdafx.h来电。

如您所见,XMLDocument也是Microsoft .NET Framework类:

.NET Framework XMLDocument

如果没有tinyxml2命名空间,它将默认为 .NET Framework 类。这需要一个兼容的应用程序,对于 C ++ ,这意味着 C ++ / CLI项目