靜態庫與動態庫的那點事

2021-08-15 15:09:13 字數 1158 閱讀 8081

靜態庫與動態庫的相關概念以及使用方法?

要點:截圖展示區:

訪問動態庫,hmodule mydll = loadlibrarya(「動態庫.dll」)

#include

#include

#include

//匯出函式,載入時呼叫

_declspec(dllexport) void msg()

//匯出函式,載入時呼叫

_declspec(dllexport) int add(int a, int b)

除錯過程:

2. 呼叫靜態lib,需要宣告#pragma comment(lib,」靜態庫與動態庫1.lib」)並且要包含靜態庫標頭檔案。

#include

#include

#include

//匯出函式,載入時呼叫

_declspec(dllexport) void msg()

//匯出函式,載入時呼叫

_declspec(dllexport) int add(int a, int b)

除錯過程:

主函式呼叫靜態lib:

#include

#include

#include"lib.h"

#pragma comment(lib,"靜態庫與動態庫1.lib")

//標頭檔案只是說明,lib已經存在介面

void main()

3.位置關係

靜態庫和動態庫的那點事

1 靜態庫 靜態庫是把程式執行時需要使用的函式編譯在乙個二進位制檔案中,擴充套件名為.lib。當程式link時把靜態庫中的二進位制資料和程式其它資料放到一起。程式執行時不在需要lib和dll檔案的支援。我們在鏈結的時候需要靜態鏈結庫,一旦鏈結成功,生成了可執行檔案,那麼,靜態鏈結庫就不再需要了。這樣...

靜態庫與動態庫

linux下靜態庫 a 的例子 mylib.h 位於include資料夾下 ifndef mylib h define mylib h int add int a,int b endif mylib.cpp 位於lib資料夾中 include mylib.h int add int a,int b ...

靜態庫與動態庫

庫本質上是一種可執行的二進位制 可以被作業系統載入 linux和windows的庫是不相容的 庫可以分為靜態塊和動態庫,二者的不同點在於 被載入的時刻不同。靜態庫 在程式編譯時會被連線到目標 中,程式執行時不再需要改靜態庫,體積較大,一般應用與移植過程中在宿主機上編譯的 靜態庫檔名的命名規範是以li...