我對MS平臺上的開發很陌生,因此我在理解dll的概念以及應用程序如何使用它們時遇到了一些問題。我對Java有着相當豐富的經驗,並會嘗試對它們進行比較,以便更深入地瞭解這些功能。MS Office COM加載項功能和DLL
從我的理解,dll的編譯C++/c#/ mfc代碼。它幾乎等同於Java的.class(除了class文件可以反編譯)。可以將dll的任何其他源文件導入爲庫,因此可以將類文件導入。
現在我想知道的是,當我們使用這個DLL時,是否只有一次dll實例將被應用程序的多個實例共享,或者每個應用程序都有它的實例的dll。我認爲這將是後者,因爲它更有意義,因爲MS開發完全是面向對象的。
其中一個最好的例子是可以在任何辦公應用程序中運行COM加載項。我們可以在不同的工作簿中打開幾個excel應用程序的開放實例。每個工作簿都有自己的加載項實例(以dll文件的形式),或者只有一個實例在Excel首次加載時啓動,並且與所有打開的工作簿共享,直到最後一個關閉。
如果它們不共享,有什麼辦法在一段時間之間共享一些方法(比如在Java中創建靜態方法和變量)?