2009-09-10 151 views
0

初始化和終止應用程序的最佳方式是什麼?初始化應用程序的最佳方式是什麼?

  1. 該庫只需要初始化/終止一次,並且可以被任意數量的dll使用。
  2. 有沒有什麼標準的設計來完成這個?
  3. 該初始化必須是第一步。

是單身是什麼,我需要在這裏。加載的任何數量的dll都將使用相同的實例或單獨的實例?

我正在使用log4cxx記錄器實現。我想這個log4cxx應該只初始化一次。任何人都可以指向僞代碼

+2

使用的應用* by * dlls?我認爲應用程序使用庫,而不是相反。還是你在談論一個圖書館,供其他圖書館使用? – 2009-09-10 06:55:11

+0

是的應用程序我的意思是我的應用程序庫 – pankajt 2009-09-10 07:26:32

回答

2

大多數應用程序都有一個入口點(對於標準C++,它被稱爲main),您可以在其中創建持續應用程序生命週期的對象。

從你的描述,它聽起來就像你實際上是寫這在其他應用程序使用的服務庫而不是應用程序(傳統意義上的)本身。

唯一安全的事情就是讓您的服務重新initializable一樣,有什麼可以從動態加載dll鏈接到庫中,明確地卸載該dll,然後停止應用程序再重新加載它。

到您的圖書館,還有就是中間dll卸載和正常終止之間沒有明顯的差異。

當你的庫被加載後,您可以使用共享/全球數據跟蹤初始化,這樣只執行可客戶之間的一次共享昂貴的初始化步驟。

也許你應該制定什麼具有您的圖書館重新初始化的難度會導致?

相關問題