Ошибка 800A01AD в VBScript на 64-битной Windows Vista при создании объекта ActiveX

3880
jcubic

Я пишу сценарий в VBScript для преобразования изображений. Это использует ImageMagic ActiveX. Я пишу этот сценарий в Windows XP, он выполняется нормально, то же самое с 32-битной Windows Vista, но в 64-битной я имею ошибку 800A01AD при попытке создать объект ActiveX (как 32-битный, так и 64-битный установлен один и тот же пакет обновления)

Set imageMagick = CreateObject("ImageMagickObject.MagickImage.1") 

Я пытаюсь установить ImageMagic от имени администратора (запускать от имени администратора в контекстном меню), я также пытаюсь запустить от имени администратора:

regsvr32 wshom.ocx regsvr32 scrrun.dll 

без успеха. А также попробуйте запустить

regsvr32 ImageMagickObject.dll 

Которые работают успешно, но скрипт по-прежнему возвращает ошибку (так же, как тестовый скрипт из ImageMagic)

1

1 ответ на вопрос

1
Tex Hex

Учитывая, что скрипт выполняется на двух 32-битных машинах, но не на 64-битной, это кажется проблемой 32/64-битной.

Немного предыстории: 64-битный процесс (приложение) не может загрузить 32-битную DLL / OCX и т. Д., А 32-битный процесс не может загрузить 64-битные файлы DLL / OCX и т. Д.

Я предполагаю, что происходит одно из следующего:

1) Вы установили 64-разрядную версию ImageMagick и пытаетесь получить к ней доступ из среды 32-разрядных сценариев.

2) Вы установили 32-разрядную версию ImageMagick и пытаетесь получить к ней доступ из среды 64-разрядных сценариев. Посмотрите этот ТАК вопрос для решения этого сценария.