我对MS平台上的开发很陌生,因此我在理解dll的概念以及应用程序如何使用它们时遇到了一些问题。我对Java有着相当丰富的经验,并会尝试对它们进行比较,以便更深入地了解这些功能。MS Office COM加载项功能和DLL
从我的理解,dll的编译C++/c#/ mfc代码。它几乎等同于Java的.class(除了class文件可以反编译)。可以将dll的任何其他源文件导入为库,因此可以将类文件导入。
现在我想知道的是,当我们使用这个DLL时,是否只有一次dll实例将被应用程序的多个实例共享,或者每个应用程序都有它的实例的dll。我认为这将是后者,因为它更有意义,因为MS开发完全是面向对象的。
其中一个最好的例子是可以在任何办公应用程序中运行COM加载项。我们可以在不同的工作簿中打开几个excel应用程序的开放实例。每个工作簿都有自己的加载项实例(以dll文件的形式),或者只有一个实例在Excel首次加载时启动,并且与所有打开的工作簿共享,直到最后一个关闭。
如果它们不共享,有什么办法在一段时间之间共享一些方法(比如在Java中创建静态方法和变量)?