vc6静态库的生成和调用
1、靜態(tài)庫的生成:
???? 在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文件,此文件就是一個函數(shù)庫,它提供了add的功能。將lib.h頭文件和SumLib.lib提交給用戶后,用戶就可以直接使用其中的add函數(shù)了。
?
2、靜態(tài)庫的調(diào)用:
?
?????新建一個控制臺應用程序,僅有一個main.cpp文件,源碼如下:
???? #include "lib.h"
???? #include <iostream>
??? using namespace std;
??? #pragma comment(lib, "SumLib.lib") //指定與靜態(tài)庫一起連接
??? int main(int argc, char* agrv[])
??? {
??????? int sum = add(4, 5);
??????? cout<<sum<<endl;
??????? return 0;
???? }
???? 將生成的lib.h頭文件和SumLib.lib靜態(tài)庫放到此工程的目錄下即可執(zhí)行。
?
????? 靜態(tài)鏈接庫與動態(tài)鏈接庫都是共享代碼的方式,它們的區(qū)別在于以下兩點: ???????
(1)采用靜態(tài)鏈接庫(lib)時,lib中的指令被全部直接包含在最終生成的exe文件中;但采用dll時,該dll不必被包含在最終exe文件中,exe文件執(zhí)行時可以“動態(tài)”地引用和卸載這個與exe獨立的dll文件,從而在運行時節(jié)省系統(tǒng)資源。
(2)靜態(tài)鏈接庫中不能再包含其他的動態(tài)鏈接庫或者靜態(tài)庫,而在動態(tài)鏈接庫中還可以再包含其他的動態(tài)或靜態(tài)鏈接庫。
?
?????(3)靜態(tài)鏈接庫由.h和.lib文件組成,.h文件要聲明.lib中供外界調(diào)用的函數(shù)的原型,不能缺少。
???? (4)VC6中調(diào)用靜態(tài)鏈接庫.lib一共有3種方法:
????? ①使用語句#include "lib.h",并將lib.h拷貝到當前工程目錄下;對SumLib.lib使用語句 #pragma comment(lib,"***//SumLib.lib"),將SumLib.lib拷貝到目錄"***//SumLib .lib"下。?????????????????????????????????????????????????????????????????????
????? ②使用語句#include “l(fā)ib.h",并在工具->選項->目錄->路徑中添加lib.h的路徑;對SumLib.lib,在工程->設置->連接->對象/庫模塊中添加SumLib.lib,并在工具->選項->目錄->路徑中添加SumLib.lib的路徑。
????? ③lib.h文件的處理同①或②;對SumLib.lib,在工程->添加到工程->文件中導入此.lib文件。
?
總結
以上是生活随笔為你收集整理的vc6静态库的生成和调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++读写ini配置文件GetPriva
- 下一篇: MFC如何打开文件路径