【问题标题】:where to find COM dll?在哪里可以找到 COM dll?
【发布时间】:2011-03-15 12:34:17
【问题描述】:

我写了一个 com 对象的 dll 我注册了 我现在在哪里可以在我的机器上找到这个 dll (当我们将 dll 注册到机器复制 dll 的地方)

如果我尝试在 powerShell 中使用这个 com 对象还有更多问题,所有丁字裤都能正常工作 如果我尝试在 javaScript 中使用它,我会遇到异常 任何想法???为什么??

【问题讨论】:

    标签: com


    【解决方案1】:

    注册 COM DLL 不会复制 DLL。它只是添加了 COM 用来定位您的 DLL 的注册表项。例如,为每个类添加一个键“HKEY_CLASSES_ROOT\CLSID{your class ID}”。很多时候,您的 DLL 路径作为默认值存储在子项中,例如“InprocServer32”(实际名称取决于您的类被配置为如何激活)。

    JavaScript 无法访问 COM 对象,甚至无法访问本地文件,因为 JavaScript 是在出于安全原因而设置的隔离环境中执行的。

    【讨论】:

      【解决方案2】:

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

      既然您提到了 PowerShell,我可以假设您正在尝试在 Windows 脚本主机中使用 Javascript 吗?如果是这样,了解异常是什么可能会有所帮助。一个关于如何做到这一点的例子:

      var xml = new ActiveXObject("Microsoft.XMLDOM");

      xml.load("foo.xml");

      当然,用您的 COM 对象中的信息替换 Microsoft.XMLDOM。

      等效的 PowerShell 将是:

      $xml = 新对象 -ComObject Microsoft.XMLDOM

      $xml.load("foo.xml")

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-30
        • 2012-11-16
        • 2017-07-24
        • 1970-01-01
        相关资源
        最近更新 更多