我写了一个C# .NET Com可调用包装器DLL。我使用StrongName签名,并使用64位的regasm.exe注册了代码库和类型库。在64位OleViewer中,注册和所有控件方法都是可见的。但是,当我尝试从64位\Windows\System32\cscript.exe使用该控件时:
Set logger = CreateObject("MyCompany.LoggerControl")
这会产生以下错误:
Microsoft VBScript runtime error: ActiveX component can't create object: 'MyCompany.LoggerControl'
使用 Sysutils 中的 ProcMon 对其进行跟踪,我发现:
1:41:44.8295486 PM cscript.exe 24028 RegOpenKey HKCR\MyCompany.LoggerControl
NAME NOT FOUND Desired Access: Read
然而,在 Regedit 中,该键存在。调用进程正在从提升的命令提示符中运行。如果这是个安全问题,那么错误应该是“ACCESS DENIED”,而不是“NAME NOT FOUND”吧?
还有哪些工具可以用来跟踪此类 COM 控件注册错误呢?