-----------------------編寫方法(visual studio為例)
一、靜態庫編寫
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、
在工程中使用靜態庫中的函式;
二、動態鏈結庫一般包括
.lib(
匯出函式),
.h,.dll
,使用動態庫有兩種情況: 1
、.lib
,包含標頭檔案,使用匯出函式;2、
動態載入,直接使用
loadlibrary() freelibrary( ) getprocaddress()
載入所需的動態庫,然後指定所需的匯出函式,效率最高!
動態鏈結庫使用 靜 動態鏈結庫使用總結
一 靜態庫編寫 1.首先當然是開vs然後建立乙個靜態庫工程啦 2.格式.一般有標頭檔案.h和原檔案.cpp,當然你也可以寫一在乙個cpp裡.mydll.h extends c mydll.cpp include mylib.h int sum int num1,int num2 int mult i...
靜態鏈結庫與動態鏈結庫總結
1 在生成lib檔案的時候並不發生連線的過程,編譯器僅僅把obj檔案裝載為乙個lib檔案。例如 static1 int add int a,int b int sub int a,int b static2 int myadd int a,int b int mysub int a,int b 這個...
使用動態鏈結庫
1.動態鏈結庫是程式執行時載入的庫,當動態鏈結庫正確安裝後,所有的程式都可以使用動態庫來執行程式。動態鏈結庫是目標檔案的集合,目標檔案在動態鏈結庫中的組織方式是按照特殊方式形成的。庫中函式和變數的位址是相對位址,不是絕對位址,其真實位址在呼叫動態庫的程式載入時形成。2.動態鏈結庫的名稱有別名 son...