3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
C++ Builder(BCB6) 使用 DLL 資料來源: http://jgm0730.blogspot.com/2016/05/c-builder-dll.html http://www.aspphp.online/bianchen/cyuyan/cjj/gycjj/201701/7439.html △原理說明:     DLL(Dynamic Link Library),照字面解釋為動態連結程式庫,在C++ Builder可以依使用者的需求,可將DLL用動態連結或靜態連結來使用。     靜態連結(必須再用工具產生對應檔案):         利用連結器把所有開發完成的應用程式模組結合起來,產生執行檔,且可直接執行這個執行檔,這種把應用程式連結成執行檔的過程就叫靜態連結,所產生的執行檔會隨程式功能的增加而越來越大,執行所佔記憶體空間也會加大,若許多不同的應用程式連結同一堆相同的程式,又會多佔了許多記憶體空間。     動態連結:         把一些經常會共用的程式碼,製作成DLL檔,執行時,若呼叫到DLL檔內包含的函數時,系統才會把DLL載入記憶體,若有許多不同的應用程式,都使用到共同的程式庫,系統只會保留一份程式碼在記憶體上。 △BCB開發DLL檔方法:     1.直接選[File]->[New],點選[New]頁次的DLL圖示,在選OK。     2.接著會彈出一個DLL Wizard對話盒,可選擇產生以C或C++為語法的DLL樣版程式,以及選要以BCB的VCL或Microsoft Visual C++為基礎架構。     3.按OK後,就會產生一個程式樣版。     4.再來,就是開始把要用的程式寫進去。     5.好了後,先存檔[File]->[Save],記得自己建一個自己放程式的目錄。     6.再來就是開始編輯成DLL檔啦:         [Project]->[Build All Project]。     7.完成後,在剛存檔的目錄下,就會產生.dll檔,及.lib檔。 △BCB對DLL之使用方法:     ★方式一:(靜態連結)         1.開啟BCB並新增一個Application專案         2.選擇「File/Save Project As」將此專案更名為自己的專案名稱,並將檔案儲存到自定的目錄之下。         3.BCB有提供一個小工具,可將DLL檔轉成LIB檔。請在C:\Program\Files\Borland\Cbuilder6\Bin目錄下,可找到一個叫 IMPLIB.EXE的工具程式。         4.在命令提式字元模式(dos模式)下,用此工具程式去轉換,會產生一個副檔名為LIB的檔。             命令格式如下: IMPLIB 檔名.LIB 檔名.DLL         5.轉好後,將LIB檔及DLL檔放到自定的專案儲存目錄下(若有.h檔,一起放入)         6.引用             a.開啟 View->Project Manager             b.選取要呼叫DLL的專案,按右鍵->Add…             c.將剛轉好的LIB檔加入。         7.在程式前(Head)宣告要呼叫DLL檔內的哪一隻函數。             例如: extern "C" __declspec(dllimport) bool __stdcall CheckString(char *pData, int iLen);         8.這樣就完成,可直接去呼叫DLL檔的函數。             例如: bool ok=CheckString(input,len);     ★方式二:(動態連結) ~ 不使用IMPLIB工具去轉LIB,直接去呼叫DLL檔。         1.開啟BCB並新增一個Application專案。         2.選擇「File/Save Project As」將此專案更名為自己的專案名稱,並將 檔案儲存到自定的目錄之下。         3.將DLL檔放到自定的專案儲存目錄下。         4.在程式前(Head)宣告要呼叫DLL檔內的哪一隻函數。             例如: extern "C" __declspec(dllimport) void __fastcall CustomerForm(char *st);         5.宣告 DLL檔內函數的指標 void (*CustomerForm) (char *);         6.將DLL檔載入,並取得handle HINSTANCE hInst=LoadLibrary("pDelphiDLL.dll");         7.取得此DLL檔函數的位址 (farROC &) CustomerForm=GetProcAddress(hInst,"CustomerForm");         8.呼叫DLL檔的函數 CustomerForm (Edit1->Test.c_str());         9.釋放DLL檔 FreeLibrary(hInst);

本文由jashliaoeuwordpress提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦