目的: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.動...