VC 靜態庫與動態庫(二)靜態庫創建與使用


1.新建項目,創建項目和解決方案

StaticLibrary  這是靜態庫項目

G:\C++Learn\Library  Library文件夾用於存放庫相關文件,包含靜態庫與后面的動態庫工程和解決方案

StaticLibraryDemo  靜態庫解決方案名稱

 2.點擊下一步,出現如下界面

選擇靜態庫,選擇預編譯頭,如果需要使用MFC就勾選上,最后點擊完成

 3.然后VS左邊解決方案管理器會顯示相關文件

這就是個最簡單的靜態庫,編譯生成下

4.文件夾生成了相關文件

解決方案目錄:

解決方案目錄下,項目文件夾StaticLibrary,Debug解決方案調試目錄下面就存放了編譯生成的.lib靜態庫

 

 

5. 給靜態庫項目添加一個c++類CMyMath供外部程序使用

然后分別添加二個函數,一個成員函數MathAdd 用於加法計算,一個全局函數MathSub 用於減法計算,最后編譯生成

 

6. 給解決方案添加一個新的控制台項目用於測試靜態庫,創建完成后設置為啟動項目

7. Test.CPP中添加相關代碼

 1 // Test.cpp : 定義控制台應用程序的入口點。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include "../StaticLibrary/MyMath.h"  //靜態庫CMyMath頭文件
 6 
 7 #pragma comment(lib,"../Debug/StaticLibrary.lib") //引入靜態庫.lib文件
 8 int _tmain(int argc, _TCHAR* argv[])
 9 {
10     //使用靜態庫中CMyMath類,調用其中的MathAdd方法
11     CMyMath myMath;
12     int nResult = myMath.MathAdd(1,2);
13     printf("1 + 2 = %d\r\n",nResult);
14     //調用靜態庫中的全局函數MathSub
15     nResult = MathSub(5,1);
16     printf("5 - 1 = %d\r\n",nResult);
17     getchar();
18     return 0;
19 }

8. 編譯運行Test, 查看相關信息.

控制台輸出調試信息,下方的模快里只有Test.exe以及系統dll,靜態庫中所有代碼都被打包加到Test.exe中去

了,與動態庫相比靜態庫最明顯區別就是不需要加載dll

 

總結:

注意:當靜態庫代碼進行修改后,Test項目也需要重新編譯生成

小技巧:當需要使用多個庫的時候,可以在解決方案目錄下新建個library文件夾用於存放多個庫的文件,整個項目組織結構更加清晰,方便引入庫


免責聲明!

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



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