【发布时间】: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