我正在尝试使Windows脚本组件能够在x64开发计算机上运行。在x32位上工作正常。但似乎无法使其运行,JScript和VBScript都存在相同的问题。

这是最简单的wsc组件。它所做的所有事情都会在消息框中弹出“ Hello”。如果将以下代码段保存到名为test_lib.wsc的文件中,则可以右键单击并注册它。现在可以作为COM组件使用。

<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
    description="Test Script Library"
    progid="TestScript.Lib"
    version="1.00"
    classid="{314042ea-1c42-4865-956f-08d56d1f00a8}"
>
</registration>
<public>
  <method name="Hello">
  </method>
</public>
<script language="VBScript">
<![CDATA[
Option Explicit
Function Hello()
    MsgBox("Hello.")
End Function
]]>
</script>
</component>


接下来,创建以下示例vb脚本并将其保存到名为test.vbs的文件中

dim o
set o = createobject("TestScript.Lib")
o.hello()


当我使用cscript或wscript运行test.vbs时,总是得到以下内容。
“ C:\ test.vbs(3,1)Microsoft VBScript运行时错误:ActiveX组件无法创建对象:'TestScript.Lib'”

在32位XP上,这可以正常工作。
有人对可能出什么问题有任何想法吗?

谢谢一大堆
诺埃尔

最佳答案

从Wndows Explorer上下文菜单中注册wsc,在64位Windows 7上一切正常。

我在32位命令提示符下运行时遇到问题,必须从%windir%\sysWOW64中使用regsvr32重新注册wsc,然后从64或32位版本运行cscript.exe的64位和32位版本都可以命令提示符。

确定要注册wsc时,是否正在使用%windir%\sysWOW64文件夹中的regsvr32?

regsvr32有两种版本,一种是32位(在sysWOW64中),一种是64位(在system32中),它们都被命名为regsvr32。

困惑?加入我们其他人:)

这是一个很好的链接,重点介绍了64位Windows上的一些陷阱:All the same yet very different

07-24 16:49