Dll的建立與使用

2021-04-23 05:50:00 字數 2235 閱讀 5161

一. 建立dll

1. 使用__declspec

(dllexport

)匯出函式或類。

note:確認logutilcpp_api已經定義。property pages->configuration properties->c/c++->preprocessor->preprocessor definitions.

#ifdef

logutilcpp_exports

#define

logutilcpp_api extern

"c"__declspec

(dllexport

)#else

#define logutilcpp_api extern "c"

__declspec(dllimport)

#endif

// this function is exported from the logutilcpp.dll

logutilcpp_api

void

printlog();

// this class is exported from the logutilcpp.dll

class

logutilcpp_api clogutilcpp

2. 使用def檔案匯出函式。

建立乙個普通的.h檔案和.cpp檔案,.h檔案如下:

#include

// todo: add your methods here.

void

logbegin(lpcwstr logfilename);

void

logerror(lpcwstr strformat,...);

void

loginfo(lpcwstr strformat,...);

void

logwarning(lpcwstr strformat,...);

void

logend();

def檔案格式如下:

library "logutilcpp"

description "logutilcpp.dll [get .bmp picture if it is failed]"

exports

logbegin        @1

logerror          @2

loginfo           @3

logwarning   @4

logend            @5

3. 使用def檔案匯出類

4. 關於dllmain函式

使用vs嚮導建立乙個dll工程會自動產生乙個dllmain函式,如果你沒有更新(即沒有使用)這個dllmain函式,可以將它刪除掉。

當windows載入dll模組時呼叫這一函式。系統首先呼叫全域性物件的建構函式,然後呼叫全域性函式dllmain。如果程式設計師沒有為dll模組編寫乙個dllmain函式,系統會從其它執行庫中引入乙個不做任何操作的預設dllmain函式版本。在單個執行緒啟動和終止時,dllmain函式也被呼叫。

二. dll的使用

方法一步驟:

1. reference dll工程。

2. 包含dll的標頭檔案。

3. 像普通的成員函式一樣使用。

方法二步驟:

1.將dll的標頭檔案,.lib檔案,.dll檔案拷到當前工程資料夾中。

2.包含dll的標頭檔案。

3.property pages->configuration properties->linker->input->additional dependencies 新增.lib檔案。

4.像普通函式一樣使用。

方法三步驟:

1.將.dll檔案拷到當前工程資料夾中。

2.使用動態呼叫的方式使用,例項如下:

typedef

void

(* printflogwarning)(lpcwstr,...);

hinstance hinstlib = loadlibrary(l

"logutillcpp.dll"

);if

(hinstlib)

printflogwarning plogwarning = (printflogwarning)getprocaddress (hinstlib,

"logwarning"

);plogwarning(l

"log warning."

);freelibrary(hinstlib);

建立DLL函式及其使用DLL

如果想要匯出乙個全域性函式,就用關鍵字來宣告 declspec dllexport 注意 這是vc自己特有的關鍵字,在linux下不可用。declspec dllexport int add int a,int b return a b 配置生成my.dll和my.lib檔案 在main.cpp中 ...

DLL的建立和使用

我們將建立的第一種型別的庫是動態鏈結庫 dll 使用 dll 是一種重用 的絕佳方式。您不必在自己建立的每個程式中重新實現同一例程,而只需對這些例程編寫一次,然後從需要該功能的應用程式引用它們即可。本演練涵蓋以下內容 建立新的動態鏈結庫 dll 專案。向動態鏈結庫新增類。建立引用動態鏈結庫的應用程式...

建立和使用DLL

首先建立個dll工程 win32控制台 dll工程 新增標頭檔案和cpp檔案,如下 ifndef dll test h define dll test h class declspec dllexport ctest endif include dll test.h include ctest ct...