動態鏈結庫(dll)(dynamic link library或者dynamic-link library),是微軟公司在微軟檢視作業系統中實現共享函式庫概念的一種實作方式。這些庫函式的副檔名是.dll、.ocx(包含activex控制的庫)或者.drv(舊式的系統驅動程式)。
所謂的動態鏈結 ,就是把一些經常會公用的**(靜態鏈結的obj程式庫)製作成dll檔,當可執行檔案呼叫到dll檔內的函式時,windows作業系統才會把dll檔載入儲存器內,dll檔本身的結構就是可執行檔案,當程式需求函式才進行鏈結。通過動態鏈結方式,儲存器浪費的情形將可大幅降低。
dll的最初目的是節約應用程式所需的磁碟和記憶體空間。模組化的另乙個好處是外掛程式的通用介面使用。
建立乙個簡單dll流程:
一、先建立乙個dll工程
二、宣告匯出函式
這裡通過使用__declspec(dllexport),新增到需要匯出的函式前,進行宣告;建立乙個對應頭檔名稱(practice_dll.h),並在裡面新增 匯出函式。
在對應.cpp檔案中新增函式實現方法。在dllmain.cpp檔案中實現也可以。
匯入函式具體新增
int add(int x,int y);
然後新增.def
選擇.def檔案,然後建立和檔案相同名稱的.def.本身模組定義檔案是乙個有著.def副檔名的文字檔案,它被用於匯出乙個dll的函式,他有兩個必需部分:library和exports。
library是乙個必須的部分。它告訴聯結器(linker)如何命名你的dll。exports是另乙個必須的部分。這個部分使得該函式可以被其他應用程式訪問到並且它建立乙個導入庫。當你生成這個專案時,不僅是乙個.dll檔案被建立,而且乙個擴充套件名為.lib的匯出庫也被建立。
如果程式設計師沒有為dll模組編寫乙個dllmain函式,系統會從其他執行庫中引入乙個不做任何操作的預設dllmain函式版本。在乙個單執行緒啟動和終止時,dllmain函式也被呼叫。f7編譯,就可以再目錄debug下得到dll和lib。
簡單的dll建立
首先在vc編譯器中建立乙個dll project,以乙個簡單的例子,這個例子是windows環境下的dll引用 main.c include include typedef int lpaddfun int,int 巨集定義函式指標型別 int main int argc,char argv hin...
建立Windows服務簡單流程
1.首先開啟vs2010 或者其他版本 建立windows服務專案 2.建立完成後切換到 檢視,中預設有onstart和onstop方法執行服務開啟和服務停止執行的操作,下面 是詳細解釋 注意選擇的是系統時間,不是winform中的時間。using system using system.io us...
BPEL學習 建立乙個簡單的流程
客戶發出乙個貸款請求 請求得到處理,然後客戶弄清楚貸款是否得到了批准。一開始,中間那個步驟將包括向啟用 web 服務的金融機構傳送申請並將決定告訴客戶。從客戶的角度看,該流程將使用他的申請,然後給他傳送乙個應答。建立流程 上面的行為包括 獲得訊息 然後呼叫金融機構的 web 服務以及最後應答客戶。在...