【问题标题】:MS office COM add-ins functionality and dllMS office COM 插件功能和 dll
【发布时间】:2013-12-27 22:39:48
【问题描述】:

我对 MS 平台上的开发非常陌生,因此我在理解 dll 的概念以及应用程序如何使用它们时遇到了一些问题。我在 Java 方面有相当丰富的经验,并将尝试比较它们以进一步了解其功能。

据我了解,dll 是编译的 c++/c#/mfc 代码。它几乎等同于 Java 中的 .class(除了可以反编译的类文件)。 dll 可以作为库导入到任何其他源文件中,类文件也可以。

现在我想知道的是,当我们使用这个 dll 时,是否只有一个 dll 实例将由使用它的多个应用程序实例共享,或者每个应用程序都有它的 dll 实例。我认为它会是后者,因为它更有意义,因为 MS 开发是完全面向对象的。

一个典型的例子是在任何办公应用程序中运行 COM 插件。我们可以有几个带有不同工作簿的打开的 excel 应用程序实例。每个工作簿是否都有自己的加载项实例(以 dll 文件的形式),或者只有一个实例在第一次加载 excel 时启动,并与所有打开的工作簿共享,直到最后一个关闭.

如果不共享,有没有办法在时间之间共享一些方法(比如在Java中制作静态方法和变量)?

【问题讨论】:

    标签: dll com office-interop


    【解决方案1】:

    这里是对 Windows DLL 的全面解释。 http://support.microsoft.com/kb/815065

    关于实例,我相信它是您建议的后者,即每个进程 1 个实例,如果是 COM 加载项,则每个正在运行的实例。

    请参阅文章中的这一段。

    当多个程序使用同一个函数库时,一个 DLL 可以 减少加载在磁盘上的重复代码 物理内存。这会极大地影响非 只是在前台运行的程序,还有其他的 在 Windows 操作系统上运行的程序。

    【讨论】:

      猜你喜欢
      • 2010-11-14
      • 1970-01-01
      • 2013-03-02
      • 2015-09-09
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多