我打动了一个com对象的dll 我注册了 我在哪里可以找到这个dll现在在我的机器上 (当我们将dll注册到nachine复制dll的地方时)
还有更多问题,如果我尝试在powerShell中使用这个com对象,那么一切都很顺利 如果我尝试在javaScript中使用它我会得到异常 任何的想法???为什么??
答案 0 :(得分:4)
注册COM DLL不会复制DLL。它只是添加COM用于定位DLL的注册表项。例如,为每个类添加一个键“HKEY_CLASSES_ROOT \ CLSID {您的类ID}”。很多时候,DLL的路径作为默认值存储在子项中,例如“InprocServer32”(实际名称取决于如何配置类的激活)。
JavaScript无法访问COM对象,甚至本地文件,因为JavaScript是出于安全原因在隔离环境中执行的。
答案 1 :(得分:2)
正如Richard Walters所说,注册COM对象不会将其复制到任何地方。通常我很懒,而不是在REGEDIT中查找长GUID,我使用查找功能搜索DLL的名称。
既然你提到过PowerShell,我可以假设你试图在Windows脚本宿主中使用Javascript吗?如果是这样,知道异常是什么可能会有所帮助。关于如何执行此操作的示例:
var xml = new ActiveXObject(“Microsoft.XMLDOM”);
xml.load( “foo.xml”);
当然,用来自COM对象的信息替换Microsoft.XMLDOM。
等效的PowerShell将是:
$ xml = New-Object -ComObject Microsoft.XMLDOM
$ xml.load( “foo.xml”)