我用 VBScript 编写脚本来转换图像。它使用 ImageMagic ActiveX。我在 Windows XP 中编写此脚本,它运行正常,在 Windows Vista 32 位中也是如此,但在 64 位中,当我尝试创建 ActiveX 对象时出现 800A01AD 错误(32 位和 64 位都安装了相同的服务包)
Set imageMagick = CreateObject("ImageMagickObject.MagickImage.1")
我尝试以管理员身份安装 ImageMagic(在上下文菜单中以管理员身份运行),我也尝试以管理员身份运行:
regsvr32 wshom.ocx
regsvr32 scrrun.dll
没有成功。并尝试运行
regsvr32 ImageMagickObject.dll
运行成功但脚本仍然返回错误(与 ImageMagic 的测试脚本相同)
答案1
鉴于该脚本可以在两台 32 位机器上运行,但不能在 64 位机器上运行,因此这似乎是 32/64 位问题。
背景知识:64 位进程(应用程序)可以不是加载 32 位 DLL/OCX 等,并且 32 位进程可以不是加载64位DLL/OCX等文件。
我假设发生了下列情况之一:
1) 您已经安装了 64 位版本的 ImageMagick,并尝试从 32 位脚本环境访问它。
2) 您已安装 32 位版本的 ImageMagick,并尝试从 64 位脚本环境访问它。请参阅这个问题针对此场景的解决方案。