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檔案。