dll檔案使用python和c 呼叫

2021-10-20 01:27:53 字數 856 閱讀 4636

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 ...