1. 程式人生 > >vc中使用動態連結庫小結

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