Создать 32-битный COM-объект из 64-битного скрипта cscript - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть сценарий JScript, который вызывается cscript. Этот сценарий создает объект ActiveX Visual Source Safe с использованием кода new ActiveXObject("SourceSafe") во внутренних органах.

Все было нормально на 32-битных окнах. Но в 64-битных окнах мне нужно вызывать 64-битную версию cscript и по-прежнему использовать 32-битный объект ActiveX (SourceSafe). 64-разрядная версия cscript не видит этот класс ActiveX (поскольку 32-разрядный класс находится в 32-разрядной ветви реестра Windows).

Есть ли способ создать этот объект из 64-битного cscript? (кроме написания 64-битного адаптера автоматизации для класса ActiveX SourceSafe)

1 Ответ

0 голосов
/ 08 февраля 2012

Я создал сервер COM +, который объединяет компонент SourceSafe COM (см. MSDN ). Это заняло меньше минуты. После этого я могу создать объект SourceSafe на сервере out-proc, используя следующий простой код:

WScript.CreateObject("SourceSafe")

Как это работает (мое понимание): COM + 64-битный сервер out-proc выполняет автоматические вызовы на 32-битный COM-сервер out-proc, который делегирует вызовы 32-битному in-proc серверу.

...