【问题标题】:Upgrading to MsXml6.dll升级到 MsXml6.dll
【发布时间】:2010-12-02 10:21:43
【问题描述】:

我在将应用程序的 Microsoft XML 核心从 msxml3.dll 升级到 msxml6.dll 时遇到问题。我将 vcproj 和我的头文件更改为指向 msxml6 头和库文件。我还更改了 msxml6 的类 ID,以使用 CoCreateVariant() 函数创建一个文档分析器。

在执行过程中,我发现我的应用程序抛出异常处理并中止。然后我使用 Visual Studio 进行调试,发现 getElementByTagName() 函数在使用 msxml6.dll 库时返回一个空指针,这反过来又导致进一步的引用导致中止,并且它与 msxml3.dll 一起工作正常。

有人知道为什么这个“未处理的异常”是由于 msxml6.dll 而出现的吗?我该如何解决?

【问题讨论】:

    标签: msxml msxml6


    【解决方案1】:

    你能仔细检查元素是否有命名空间吗?这可能是因为 MSXML3 和 MSXML6 之间的行为变化,其中 MSXML6 在命名空间方面更加兼容。要解决此问题,您可能需要改用 XPath。

    【讨论】:

    • 谢谢塞缪尔。是的,你是对的,我正在尝试将 msxml3.dll 升级到 msxml6.dll。我拥有的应用程序完全用 C++ 编写。由于我在 msxml3.dll 中发现了更多的内存泄漏,我觉得将它升级到 msxml6.dll 会更好。您能否详细说明如何使用 Xpath 来修复此错误?
    • XPath 是命名空间感知的,因此您可以使用 selectSingleNode 和 selectNodes 来获取您想要的节点。您可以搜索 MSDN 以获取详细文档。
    猜你喜欢
    • 1970-01-01
    • 2019-11-28
    • 2012-11-13
    • 1970-01-01
    • 2018-11-28
    • 2017-01-14
    • 2016-01-10
    • 2022-07-06
    相关资源
    最近更新 更多