我寫了一個C#.NET Com可調用包裝器DLL。我用StrongName對它進行了簽名,並使用64位regasm.exe註冊了代碼庫和typelib。使用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'
是sysutils使用procmon中跟蹤下來,我找到:
1:41:44.8295486 PM cscript.exe 24028 RegOpenKey HKCR\MyCompany.LoggerControl
NAME NOT FOUND Desired Access: Read
但是,這個鍵存在於Regedit中。調用進程從提升的命令提示符運行。如果這是一個安全問題,錯誤是不是'訪問被拒絕'而不是'未找到名稱'?
什麼是追蹤這種類型的COM控件註冊錯誤的其他工具?
有沒有這樣的 「HKCR \ MyCompany.LoggerControl」 和能不能訪問?確保從*相同的bitness * regedit中查找,然後仔細檢查正在執行的程序的位數,以確保沒有發生任何有趣的事情。 (任務管理器中的「*」後綴= 32位。) – 2012-03-08 19:11:17