vc中使用動態連結庫小結
一. 靜態庫包括.lib和.h檔案,在工程中使用靜態庫分為3步:
<1> 在工程中加入靜態庫,有兩種方法:
**方法一:專案設定中引用.lib,project-> setting-> link-> object/library modules中新增.lib;(需要在tools/options設定正確的引用路徑)
**方法二:在專案中直接加入lib,project-> add to project-> files,選擇正確的.lib。
<2> 在工程中包括.h檔案;(可能 需要在tools/options設定正確的引用路徑)
<3> 在工程中使用靜態庫中的函式;
二. 動態連結庫一般包括.lib(匯出函式),.h,.dll檔案,使用動態庫有兩種情況:
a . 隱式連結,同使用靜態庫相似,分為三步:引用.lib,包含標頭檔案,使用匯出函式;
b. 動態載入,直接使用LoadLibrary 載入所需的動態庫,然後指定所需的匯出函式,效率最高!
三.關於lib檔案:
開發DLL的時候,就會生成兩個檔案:LIB靜態庫檔案(介面檔案)、DLL動態庫檔案(程式檔案).
LIB是提供DLL介面的檔案,供編譯器使用.
#pragma comment(lib, "##/##/mine.lib")
是使本工程加入mine.dll動態連結串列庫的介面庫檔案,讓本工程可以使用mine.dll中的函式
另:建立c語言函式庫的辦法
1.現將二個函式sub1()及sub2()建立成一個函式庫檔案取名為mylib.lib。兩個函式的函式及型參如下:
函式1: void sub1(void);
函式2: float sub2(int i,float x);
將它們分別建立一個檔案,取名為s1.c及s2.c,在用命令tcc對它們分別編譯後產成兩個目標檔案s1.obj及s2.obj,最後使用tlib命令建立函式庫檔案mylib.lib,並建立相應的例表文件(例表文件主要用來檢查主函式庫的使用情況),命令格式如下:
tcc s1.c s2.c
tlib mylib +s1 +s2,mylib.lst
將產生的mylib.lib函式庫檔案拷貝到標準庫目錄下c:\tc\lib
2.建立其標頭檔案(假設取名為myfunc.h)內容如下:
extern void sub1(void);
extern float sub2(int,float);
將此檔案拷貝到目錄下c:\tc\include
3.在使用者的程式中按下例方式直接使用即可:
#include<myfunc.h>
main()
{…
呼叫sub1(),sub2();
…
}
4.在Turboc下用編譯命令tcc對使用者程式檔案進行編輯及連結,設其使用者程式檔名為my.c,使用命令格式:
tcc -Ic:\tc\include