无法使用 XMLDocument - "incomplete type is not allowed"

Can't use XMLDocument - "incomplete type is not allowed"

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

XMLDocument doc; 

我收到一个错误:

incomplete type is not allowed

当我搜索这个问题时,我发现一些 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 requires C++/CLI mode

我需要做什么才能使用 XMLDocument 对象?

如果您查看示例源文件 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


  • 将源文件添加到项目时,right-click cpp 文件并选择 properties:

  • 接下来,你需要告诉它不要使用预编译头文件:

现在您不需要 #include stdafx.h 调用。


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

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