dll是windows上的動態庫檔案,常常將需要使用的函式封裝在dll檔案中,因此dll檔案是不存在main入口的,把它想成函式就行,其內容並不神秘。
只是使用的時候需要對dll檔案進行載入,載入dll檔案後就可以使用裡面封裝好的函式了。
c++裡面呼叫很簡單,windows封裝好了,只需要#include就可以直接使用,而要想使用python呼叫需要使用ctypes庫。
這個測試的dll檔案是只定義了乙個函式add,定義了乙個加法運算:
可以看到有乙個add函式被暴露出來了
下面使用python測試一下效果:
from ctypes import cdll
_dll = cdll.loadlibrary("./dlltest.dll")
res = _dll.add(3,2)
print(res)
執行效果:
c++呼叫:
#include #includeint main()
typedef int(*addfunc)(int, int);
addfunc add;
add = (addfunc)getprocaddress(module, "add");
int re = add(2,5);
std::cout << re 執行結果:
dll 檔案編寫和使用
1.基本概念 dll dynamic link library 動態鏈結庫,是微軟實現共享函式庫的一種方式。動態鏈結,就是把一些常用的函式 製作成dll檔案,當某個程式呼叫到dll中的某個函式的時候,windows系統才把dll載入到記憶體中。也就是說當程式需要的時候才鏈結dll,所以是動態鏈結。動...
C 生成和使用dll和lib
dll和lib 動態鏈結庫 dll 是乙個可以被其他應用程式共享的程式模組,其中封裝了一些可以被共享的例程和資源。和可執行檔案 exe 非常類似,區別在於dll中雖然包含了可執行 卻不能單獨執行,而應由windows應用程式直接或間接呼叫。靜態鏈結庫 lib 包含函式 本身,在編譯時直接將 加入程式...
dll檔案的c 製作dll檔案的c 製作
dll檔案的c 製作 1 首先用vs2005建立乙個c 的dll動態鏈結庫檔案,這時,dlltest.cpp 定義 dll 應用程式的入口點。include stdafx.h include dlltest.h ifdef managed pragma managed push,off endif ...