MS office COM加载项功能和dll

MS office COM加载项功能和dll,dll,com,office-interop,Dll,Com,Office Interop,我对MS平台上的开发非常陌生,因此在理解dll的概念以及应用程序如何使用dll时遇到了一些问题。我对Java有相当丰富的经验,我将尝试比较它们,以便更好地理解其功能 据我所知,dll是由c++/c#/mfc代码编写的。它几乎等同于Java中的.class(类文件可以反编译除外)。dll可以作为库导入到任何其他源文件中,类文件也是如此 现在我想知道的是,当我们使用这个dll时,是否只有一个dll实例将被使用它的多个应用程序实例共享,或者每个应用程序都有它的dll实例。我假设是后者,因为它更有意义,

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

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

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

这方面的一个主要示例是在任何office应用程序中运行COM加载项。我们可以使用不同的工作簿打开多个excel应用程序实例。每个工作簿都有自己的外接程序实例(以dll文件的形式),还是只有一个实例在首次加载excel时启动,并与所有打开的工作簿共享,直到最后一个工作簿关闭


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

下面是对Windows DLL的全面解释

关于实例,我相信您建议的是后者,即每个进程1个实例,在COM插件的情况下,每个运行的实例都是实例

见文章的这一段

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