Visual C++2010入門經典(第五版) 第20章 學習總結 -----編寫自己的DLL

一、DLL的工作方式

加載時動態鏈接,也叫早期綁定;

運行時動態鏈接,也叫晚期綁定;

二、DLL並不是多個應用程序之間共享類和函數的唯一方式。COM提供了另外一種創建可重用組件組件的方式,這種方式功能更爲強大。COM的使用相當複雜,但是ATL(活動模板庫)可以使得COM編程比較容易,而ATL是一種基於模板的類庫。

三、可以在DLL中定義一個靜態全局變量,包括C++對象,使用DLL的程序可以使用這些變量。在創建全局靜態類對象時,將自動調用這些對象的構造函數。注意:使用DLL的每個程序都將在這個DLL內定義它自己的靜態全局對象,儘管程序不一定使用它們。對於全局類對象來說,這涉及爲每個對象調用構造函數時產生的系統開銷。因此,除非絕對需要,否則應當避免把這樣的對象引入DLL。

四、函數、類、全局靜態變量和資源都可以從DLL導出,它們構成了DLL的接口。

五、DllMain()函數---DLL調用前和調用完之後都要調用DllMain函數

儘管DLL不像獨立程序那樣是可執行的,但是它包含一種特殊的main函數,稱作DllMain()函數。

1)第一次把DLL加載到內存中時,Windows將調用這個函數,從而允許DLL在其內容被使用前進行必要的初始化工作。

2)Windows在內存中刪除DLL之前也要調用DllMain()函數,以支持DLL在必要時清理自己。

六、擴展DLL是利用MFC的共享版本創建的,所以在使用擴展DLL時候,MFC的共享版必須可以使用。


由於擴展DLL中MFC共享版的基本性質,靜態連接到MFC的程序不能使用MFC擴展DLL。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章