Я написал C# .NET Com вызываемой оберткой DLL. Я подписал его с StrongName и зарегистрировал код и typelib с 64-разрядным regasm.exe. Регистрация и все методы управления видны с помощью 64-разрядного OleViewer. Однако, когда я пытаюсь использовать элемент управления из 64 бит \ Windows \ System32 \ cscript.exe:Как устранить неполадки при регистрации/использовании библиотеки .NET COM Callable Wrapper DLL?
Set logger = CreateObject("MyCompany.LoggerControl")
Это дает ошибку:
Microsoft VBScript runtime error: ActiveX component can't create object: 'MyCompany.LoggerControl'
Использование ProcMon из SysUtils отслеживать это вниз, я :
1:41:44.8295486 PM cscript.exe 24028 RegOpenKey HKCR\MyCompany.LoggerControl
NAME NOT FOUND Desired Access: Read
Однако этот ключ существует в Regedit. Вызывающий процесс запускается из командной строки с повышенными правами. Если это была проблема безопасности, не должна ли ошибка быть «ДОСТУП ДАННЫМ» вместо «ИМЯ НЕ НАЙДЕНА»?
Каковы другие инструменты для отслеживания этой ошибки регистрации контроля COM-типа?
Есть ли такая "HKCR \ MyCompany.LoggerControl" и она может быть доступна? Удостоверьтесь, что вы смотрите с * той же битности * regedit и дважды проверяете битту исполняющей программы, просто чтобы убедиться, что что-то фанки не произошло. (Суффикс «*» в диспетчере задач = 32 бита.) –