VC++ 連結庫(二)靜態連結庫

來源:互聯網
上載者:User

        在具體講解動態連結程式庫DLL之前,我們先來講解靜態連結庫,通過一個靜態連結庫的例子可以快速的協助我們建立“庫”的概念。


一個靜態連結庫的例子


          首先我們使用VC ++建立靜態連結庫,利用VC ++建立一個Win32 Static Library類型的工程,並建立兩個檔案LibTest.h和LibTest.cpp,代碼如下:

//檔案LibTest.h

#ifndef LIB_H  #define LIB_H      extern "C" int add(int x,int y);//聲明為C編譯、串連方式的外部函數  #endif  

//檔案LibTest.cpp

#include "LibTest.h"  int add(int x,int y)  {      return x + y;  }  

        直接編譯這個工程,會在工程目錄下的debug目錄下得到一個.lib檔案,這個檔案就是一個函數庫,那麼我們怎麼使用它呢

----------------------------------------------------------------------華麗的分割線--------------------------------------------------------------------------
 

         接著,我們再建立一個簡單的Win32 Console Application工程Test,該工程只有一個Test.cpp檔案,代碼如下:

//檔案Test.cpp

#include <stdio.h>  #include "..\LibTest\LibTest.h"  #pragma comment( lib, "..\\LibTest\\debug\\libTest.lib" ) //指定與靜態庫一起串連  int main(int argc, char* argv[])  {     printf( "2 + 3 = %d", add( 2, 3 ) ); 
   return 0; }  

         注意這個代碼中#pragma comment( lib , "..\\debug\\libTest.lib" )的意思是讓本檔案產生的.obj檔案與剛才產生libTest.lib一起連結。
        如果不用#pragma comment指定,則可以直接在VC++中設定,,依次選擇tools-->options-->directories-->library files菜單或選項,填入庫檔案路徑。

                                   

運行程式,得到結果:

                                            

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.