vc6靜態庫的生成和調用


轉自vc6靜態庫的生成和調用


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文件。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM