首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“MSXML2.XMLHTTP 60”的后期绑定问题

“MSXML2.XMLHTTP 60”的后期绑定问题
EN

Stack Overflow用户
提问于 2022-02-10 07:49:02
回答 1查看 449关注 0票数 -1

当我试图运行下面的代码时,我得到了一个Run-time error '429': ActiveX component can't create object错误。

代码语言:javascript
运行
复制
Option Explicit

Private Sub EarlyVsLateBinding()

    ' References to both the Microsoft Scripting Runtime and Microsoft XML, v6.0 
    ' are active so that early binding is possible

    Dim EarlyDictionary As Scripting.Dictionary
    
    Dim LateDictionary As Object
    Set LateDictionary = CreateObject("Scripting.Dictionary")
    
    Dim EarlyHTTP As New MSXML2.XMLHTTP60
    
    Dim LateHTTP As Object
    Set LateHTTP = CreateObject("MSXML2.XMLHTTP60") ' Error is thrown here

End Sub

我包含了Scripting.Dictionary的示例,以使自己确信CreateObject函数没有引起任何问题,并表明早期和后期绑定对于另一个类是有效的。

遗憾的是,我在这个类中遇到的每个示例都使用早期绑定方法,但我需要这段代码的后期绑定方法。另外,用Set LateHTTP = CreateObject("MSXML2.XMLHTTP60")替换行Set LateHTTP = GetObject(Class:="MSXML2.XMLHTTP60")也会产生同样的错误。

是什么导致了这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-10 08:16:07

正如@Raymon Wu在问题的评论中指出的,改变了路线

Set LateHTTP = CreateObject("MSXML2.XMLHTTP60")

Set LateHTTP = CreateObject("MSXML2.XMLHTTP")

工作过部分

编辑1

或者,正如@KL-1在注释中指出的那样,将行更改为

Set LateHTTP = CreateObject("MSXML.XMLHTTP.6.0")

也解决了这个问题。

此更改确实使我的问题中的代码无错误地运行。但是,这会导致另一段代码中的另一个错误。

LateHTTP.setRequestHeader bstrHeader:="Content-Type", bstrValue:="application/json"

这是Run-time error '448': Named argument not found错误。通过移除命名的参数并将行更改为

LateHTTP.setRequestHeader "Content-Type", "application/json"

编辑1

请注意,这两种解决方案都导致了这个Run-time error '448'

正如其他人在注释中指出的那样,在绑定类时,在使用早期和晚期时,名称不一定相同。

后期绑定的名称可以在Computer\HKEY_CLASSES_ROOT下的计算机注册表编辑器中找到。

我知道这超出了问题的范围,但我认为这是有关的资料。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71061434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档