DLL的設計和使用

2021-10-08 08:47:59 字數 1880 閱讀 7209

目的:vs2019生成dll,codeblock gcc呼叫dll。

一 . 設計生成dll,使用vs2019

step1:先使用vs2019自動生成mfc dll的工程;

step2:在dllmain.cpp中新增如下**:

#include

<

windows.h

>

#define

eof(-1

)#ifdef

__cplusplus//

ifusedbyc

++code

,extern

"c"return1;

}#ifdef

__cplusplus}#

endif

二. 使用codebblock 呼叫dll

方法1: 直接使用方法需要用到lib和**件

lib檔案新增到codeblock的project build option \ linker settings 中的other linker setting中;

#ifdef

__cplusplus

extern

"c"#

endif

方法2: 使用loadlibrary的方法,這樣使用者不需要lib和**件。

step1:定義函式(函式型別宣告,函式指標)

typedef

int(

__cdecl

*funcmyproc)(

char*)

;//宣告介面函式

1

step2:宣告變數
wxhmodule

hinstlib;/

/hmodule

hinstlib

;bool

ffreeresult

,fruntimelinksuccess

=false

;funcmyproc

procadd;/

/定義介面函式

2

step3:初始化

//介面函式初始化

3procadd

=null

;hinstlib

=loadlibrary

(text

("d:\\temp\\dll1\\x64\\debug\\dll1.dll"))

;//if

thehandle

isvalid

,try

toget

thefunction

address.if

(hinstlib!=

null

)

step4:呼叫介面函式

if

(hinstlib!=

null

)}

step5:退出,關閉dll的使用

if

(hinstlib!=

null)/

/關閉介面函式

5

三. 注意事項

1. dll 和呼叫exe,x86\x63\win32, 需要保持一致,也就是必須是同樣是32bit或64bit。

2. 建議dll使用unicode編碼,這樣可以避免漢字為亂碼的情況。

3. 呼叫exe可以是多位元組或unicode,dll也可以是多位元組或unicode,兩者可以不一樣,建議保持一致。

DLL生成和使用

1.dll生成流程 win32 win32project dll 2.匯出函式 加入乙個標頭檔案,定義個匯入匯出巨集 ifdef samplelib exports define lib api declspec dllexport else define lib api declspec dlli...

使用DLL作為外掛程式的設計框架

在應用程式中,常常需要設計一種框架來適應需求的不斷變化。經常地,在軟體發布之後,使用者需要增加新的功能,或者不同的使用者需要根據各自特定的需求定製功能。為了達到這個目的而無需重寫 或者重做 開發 編譯 測試 發布 等一系列任務,我們可以實現一種在不破壞現有 的條件下可擴充模組的框架。使用外掛程式 p...

lib和 dll的區別和使用

共有兩種庫 1.一種是lib包含了函式所在的dll檔案和檔案中函式位置的資訊 入口 由執行時載入在程序空間中的dll提供,稱為動態鏈結庫dynamic link library。2.一種是lib包含函式 本身,在編譯時直接將 加入程式當中,稱為靜態鏈結庫static link library。1.動...