2010-07-13 132 views
2

我又写道COM对象 的DLL我注册它 我在哪里可以现在发现这个DLL在我的机器 (当我们注册的dll到了nachine复制DLL),如果我尝试使用在哪里可以找到COM DLL?

多的问题这个COM对象在PowerShell中一切都很顺利 如果我尝试在javaScript中使用它,我会得到异常 任何想法?为什么??

回答

4

注册COM DLL不会复制该DLL。它只是添加COM用来查找您的DLL的注册表项。例如,为每个类添加一个键“HKEY_CLASSES_ROOT \ CLSID {您的类ID}”。很多时候,DLL的路径作为默认值存储在诸如“InprocServer32”的子项中(实际名称取决于您的类如何配置为激活)。因为JavaScript是建立出于安全原因,一个孤立的环境中执行

JavaScript不能访问COM对象,甚至本地文件对于这个问题,。

2

正如理查德沃尔特斯所说,注册COM对象不会将其复制到任何地方。通常我懒惰,而不是在REGEDIT中查找长GUID,我使用查找功能搜索DLL的名称。

既然你提到了PowerShell,我可以假设你正在尝试在Windows Script Host中使用Javascript吗?如果是这样,知道什么是例外可能会有所帮助。如何做到这一点的例子:

var xml = new ActiveXObject(“Microsoft.XMLDOM”);

xml.load(“foo.xml”);

当然用来自COM对象的信息替换Microsoft.XMLDOM。

等效PowerShell的将是:

$ XML =新物体-ComObject Microsoft.XMLDOM

$ xml.load( “foo.xml”)

相关问题