動態鏈結庫使用 靜 動態鏈結庫使用總結

2021-06-16 01:45:28 字數 1371 閱讀 5866

一、靜態庫編寫

1.首先當然是開vs然後建立乙個靜態庫工程啦

2.格式.一般有標頭檔案.h和原檔案.cpp,當然你也可以寫一在乙個cpp裡.

mydll.h------------------------

extends "c"

mydll.cpp--------------------

#include "mylib.h"

int sum(int num1,int num2)

int mult(int num1,int num2)

3.編譯得到lib,然後拿埋mydll.h就可以使用了

二、動態庫編寫

1.首先建立乙個動態工程.

2.格式.

mydll.h------------------------

#ifdef dll_api

#else

#define dll_api extern "c" _declspec(dllimport)

#endif

dll_api int _stdcall add(int a,int b);

mydll.cpp--------------------

#define dll_api extern "c" _declspec(dllexport)

#include "mydll.h"

#include

int add(int a,int b)

3.編譯的到lib,和dll,然後拿埋編寫的mydll.h就可以使用了.

個人想說的話:動態庫必須要用_declspec()字樣標識,但是靜態的就不用了.extends "c" 和_stdcall都是呼叫方式,

詳細看這裡

-----------------------使用方法

一、靜態庫包括.lib和.h檔案,在工程中使用靜態庫分為3步:

1、在工程中加入靜態庫,有兩種方法:

方法一:專案設定中引用.lib,project-setting-link-object/library modules中新增.lib;(需要在tools/options設定正確的引用路徑)

方法二:在專案中直接加入lib,project-add to project-files,選擇正確的.lib。

方法三: #pragma comment(lib, "##/##/mine.lib")

2、在工程中包括.h檔案;(可能需要在tools/options設定正確的引用路徑)

3、在工程中使用靜態庫中的函式;

2、動態載入,直接使用loadlibrary() freelibrary( ) getprocaddress() 載入所需的動態庫,然後指定所需的匯出函式,效率最高

靜 動態鏈結庫使用總結

編寫方法 visual studio為例 一 靜態庫編寫 1.首先當然是開vs然後建立乙個靜態庫工程啦 2.格式.一般有標頭檔案.h和原檔案.cpp,當然你也可以寫一在乙個cpp裡.mydll.h extends c mydll.cpp include mylib.h int sum int num...

使用動態鏈結庫

1.動態鏈結庫是程式執行時載入的庫,當動態鏈結庫正確安裝後,所有的程式都可以使用動態庫來執行程式。動態鏈結庫是目標檔案的集合,目標檔案在動態鏈結庫中的組織方式是按照特殊方式形成的。庫中函式和變數的位址是相對位址,不是絕對位址,其真實位址在呼叫動態庫的程式載入時形成。2.動態鏈結庫的名稱有別名 son...

使用動態鏈結庫

1.先建立乙個動態鏈結庫的工程 vs下,file new project win32 project dll t.h ifdef myapi export define myapi declspec dllexport else define myapi declspec dllimport end...