1. 程式人生 > >vc6靜態庫的生成和呼叫

vc6靜態庫的生成和呼叫

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

1、靜態庫的生成:

     在vc6.0++中Ctrl+N選擇Projects下的Win32 Static Library,Project name:SumLib,點選OK,下一頁中的兩項可選可不選,點選Finish完成。

      在此工程中新建lib.h和lib.cpp兩個檔案,原始碼如下:

      //lib.h

     #ifndef LIB_H
     #define LIB_H
     int add(int x, int y);
     #endif

     //lib.cpp

     #include "lib.h"
     #include "StdAfx.h"//此處不加此語句總是出錯

     int add(int x, int y)
     {
         return (x+y);
     }

 

     編譯這個工程就得到了SumLib.lib檔案,此檔案就是一個函式庫,它提供了add的功能。將lib.h標頭檔案和SumLib.lib提交給使用者後,使用者就可以直接使用其中的add函數了。

 

2、靜態庫的呼叫:

 

     新建一個控制檯應用程式,僅有一個main.cpp檔案,原始碼如下:

     #include "lib.h"
     #include <iostream>

    using namespace std;

    #pragma comment(lib, "SumLib.lib") //指定與靜態庫一起連線

    int main(int argc, char* agrv[])
    {
        int sum = add(4, 5);

        cout<<sum<<endl;

        return 0;
     }

     將生成的lib.h標頭檔案和SumLib.lib靜態庫放到此工程的目錄下即可執行。

 

      靜態連結庫與動態連結庫都是共享程式碼的方式,它們的區別在於以下兩點:        

  (1)採用靜態連結庫(lib)時,lib中的指令被全部直接包含在最終生成的exe檔案中;但採用dll時,該dll不必被包含在最終exe檔案中,exe檔案執行時可以“動態”地引用和解除安裝這個與exe獨立的dll檔案,從而在執行時節省系統資源。

  (2)靜態連結庫中不能再包含其他的動態連結庫或者靜態庫,而在動態連結庫中還可以再包含其他的動態或靜態連結庫。

     (3)靜態連結庫由.h和.lib檔案組成,.h檔案要宣告.lib中供外界呼叫的函式的原型,不能缺少。

     (4)VC6中呼叫靜態連結庫.lib一共有3種方法:
      ①使用語句#include "lib.h",並將lib.h拷貝到當前工程目錄下;對SumLib.lib使用語句 #pragma comment(lib,"***//SumLib.lib"),將SumLib.lib拷貝到目
錄"***//SumLib .lib"下。                                                                     
      ②使用語句#include “lib.h",並在工具->選項->目錄->路徑中新增lib.h的路徑;對SumLib.lib,在工程->設定->連線->物件/庫模組中新增SumLib.lib,並在工具->
選項->目錄->路徑中新增SumLib.lib的路徑。
      ③lib.h檔案的處理同①或②;對SumLib.lib,在工程->新增到工程->檔案中匯入此.lib檔案。


           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述