1. 爲什麼有產生DLL(Dynamic Linkable Library)
答:1)重用。DLL提供了一些可以直接拿來用的變量、類和函數。例如C++中的Scanf函數
2)靜態鏈接庫(lib)與動態鏈接庫(DLL)都是提供了一種代碼的共享方式,區別在:採用靜態鏈接庫,則無論你願不願意,lib中的指令都被直接包含在最終生成的EXE文件中。DLL不必被包含在最終EXE文件中,EXE文件執行時可以“動態”地引用和卸載這個與EXE獨立的DLL文件。靜態鏈接庫和動態鏈接庫的另外一個區別在於靜態鏈接庫中不能再包含其他的動態鏈接庫或者靜態庫,而在動態鏈接庫中還可以再包含其他的動態或靜態鏈接庫。
2. DLL的概念
DLL 的編制與具體的編程語言及編譯器無關。只要遵循約定的DLL接口規範和調用方式,用各種語言編寫的DLL都可以相互調用。譬如Windows提供的系統DLL(其中包括了Windows的API),在任何開發環境中都能被調用。
3.Visual C++ 下Dll的分類
三種:Non-MFC DLL(非MFC動態庫)、MFC Regular DLL(MFC規則DLL)、MFC Extension DLL(MFC擴展DLL)。
Non-MFC DLL(非MFC動態庫):採用MFC類庫結構,其導出函數爲標準的C接口,能被非MFC或MFC編寫的應用程序所調用
MFC Regular DLL(MFC規則DLL):MFC規則DLL 包含一個繼承自CWinApp的類,但其無消息循環
MFC Extension DLL(MFC擴展DLL):MFC擴展DLL採用MFC的動態鏈接版本創建,它只能被用MFC類庫所編寫的應用程序所調用。