暑期學習正式拉開帷幕。
昨天看了看imac的使用,感覺不錯,**推薦一下。
這幾天準備學學dll:主要參考資料,還有個比較好的資料。
上午小小寫了寫靜態鏈結庫的使用。
資料相當詳細吖,記錄下自己的收穫。
1.對鏈結庫的理解
鏈結庫,顧名思義,是為可執行檔案提供的可鏈結的乙個庫檔案。庫檔案中可以提供一些函式資料等(感覺像是標頭檔案,只是該庫不在專案工程下)。庫由.h和.cpp組成(原諒自己吧,用c++寫的)。
2.鏈結庫的編寫
新建win32應用程式libtest,分別新增.h檔案.cpp檔案 //
檔案:lib.h--固定寫法
#ifndef lib_h
#define lib_h
extern "c++" int add(int x,int y); //宣告為c編譯、連線方式的外部函式--此處可以新增很多函式(可以沒有返回值),也可以不新增extern。
#endif
//檔案:lib.cpp
#include "lib.h"
int add(int x,int y)//
注意,這個工程的配置型別是靜態庫.lib(單擊專案名-右鍵-屬性-常規-專案預設設定-配置型別-靜態庫.lib)
3.鏈結庫的呼叫
在同乙個解決方案下新增新專案,編寫乙個cpp檔案
#include
#include "..libtest\test\lib.h"
#pragma comment( lib, "..\\debug\\libtest.lib" ) //指定與靜態庫一起連線
int main(int argc, char* argv)
到此,乙個靜態庫的呼叫就實現了。
動態鏈結庫DLL
函式和資料被編譯進乙個二進位制檔案 通常擴充套件名為.lib 靜態庫 在使用靜態庫的情況下,在編譯鏈結可執行檔案時,鏈結器從庫中複製這些函式和資料並把它們和應用程式的其它模組組合起來建立最終的可執行檔案 exe檔案 在多個同樣的程式執行時,系統保留了許多重複的 副本,造成記憶體資源浪費。動態庫 使用...
動態鏈結庫 靜態鏈結庫
包含標頭檔案和庫 idir 指定編譯查詢標頭檔案的目錄,常用於查詢第三方的庫的標頭檔案,例 gcc test.c i.inc o test。ldir 指定鏈結時查詢lib的目錄,常用於查詢第三方庫。llibrary 指定額外鏈結的lib庫 巨集定義 dmacro 以字串 1 預設值 定義 macro...
靜態鏈結庫 動態鏈結庫
庫是寫好的現有的,成熟的,可以復用的 現實中每個程式都要依賴很多基礎的底層庫,不可能每個人的 都從零開始,因此庫的存在意義非同尋常。本質上來說庫是一種可執行 的二進位制形式,可以被作業系統載入記憶體執行。庫有兩種 靜態庫 a lib 和動態庫 so dll windows上對應的是.lib dll ...