msxml6.tlh 在类实例化期间检测到 IXMLDOMNode 错误不完整类型

msxml6.tlh IXMLDOMNode error incomplete type is not allowed from detected during instantiation of class

提问人:al.do.rivero 提问时间:7/8/2023 最后编辑:Remy Lebeaual.do.rivero 更新时间:7/8/2023 访问量:23

问:

MSXML2::IXMLDOMDocumentPtr pXMLDom = NULL;

HRESULT hr = CoInitialize(NULL);
hr = pXMLDom.CreateInstance("Msxml2.DOMDocument.6.0");
if (FAILED(hr))
{
    printf("Failed to instantiate an XML DOM.\n");
    return NULL;
}

if (pXMLDom->load(L"dynaDOMsmart.xml") == VARIANT_TRUE) 
{
    printf("XML DOM loaded from dynaDOMsmart.xml:\n%s\n", (LPCSTR)pXMLDom->xml);
    return pXMLDom;
}
else
{
    // Failed to load xml
    printf("Failed to load DOM from dynaDOMsmart.xml. %s\n",
        (LPCSTR)pXMLDom->parseError->Getreason());
}

从 C++ 中的 Windows 窗体项目中,我正在尝试使用变量加载一个。我收到此错误:IXMLDOMDocumentMSXML2::IXMLDOMDocumentPtr pxmlDomDoc

不允许使用不完整类型

在类实例化期间检测到。

我不知道为什么会发生这种情况,因为我以相同的方式从相同语言的控制台项目中执行了相同的操作,没有错误。

C++ MSXML6

评论

0赞 Hans Passant 7/8/2023
问题的标题看起来很可疑。不要 #include msxml6.tlh,请改用。#import <msxml6.dll>
0赞 Remy Lebeau 7/8/2023
仅供参考,顺便说一句,您的两种类型转换都是错误的。 是 的别名,但 和 都是 ()。你 CA T 像这样将宽弦铸造成窄弦。但是,您可以打印出宽字符串。LPCSTRLPCSTRconst cbar*xmlreasonBSTRwchar_t*printf

答: 暂无答案