Я написал DLL-библиотеку для вызываемой оболочки C # .NET Com.Я подписал его с помощью StrongName и зарегистрировал базу кода и библиотеку типов с помощью 64-битного regasm.exe.Регистрация и все методы элемента управления отображаются в 64-битном OleViewer.Тем не менее, когда я пытаюсь использовать элемент управления из 64-разрядных \ Windows \ System32 \ cscript.exe:
Set logger = CreateObject("MyCompany.LoggerControl")
Это приводит к ошибке:
Ошибка выполнения Microsoft VBScript: ActiveXкомпонент не может создать объект: 'MyCompany.LoggerControl'
Используя ProcMon из Sysutils для отслеживания этого, я нахожу:
1: 41: 44.8295486 PM cscript.exe 24028 RegOpenKey HKCR \ MyCompany.LoggerControl
ИМЯ НЕ НАЙДЕНО Требуемый доступ: Чтение
Однако этот ключ существует в Regedit.Вызывающий процесс выполняется из командной строки с повышенными правами.Если это была проблема безопасности, не должна ли ошибка быть «ДОСТУП ОТКАЗАНО» вместо «ИМЯ НЕ НАЙДЕНО»?
Какие есть другие инструменты для отслеживания этого типа ошибки регистрации элемента управления COM?