一戈毒,前言
上篇我說過了艰猬,正在開發(fā)一個小工具,那么遇到一個小問題埋市,就是crc算法c語言已經(jīng)有了冠桃,我做成dll動態(tài)庫,后讓python調用不就好了道宅。
二食听,需求
要傳變量地址或數(shù)組首地址胸蛛,加長度。返回值為uint樱报。
三葬项,實現(xiàn)
折騰了一把后實現(xiàn)了。原來用的是ctypes技術迹蛤。
import ctypes
from ctypes import *
dll = ctypes.cdll.LoadLibrary("./crcDll.dll")
CRC=dll.CRC_Cal
CRC.restype=c_uint # 返回值為uint民珍,否則出現(xiàn)負值
b = [0x11,0x22,0x33,0x44,0x55,0x66,0x77]
N = 7
test_arr=(c_byte*N)(*b)
a=CRC(N,test_arr)
print(hex(a))
四,小結
之前用過python調用dll盗飒,但是從來沒有傳地址嚷量。今天又學到一招,小工具也完成了逆趣。我就喜歡折騰蝶溶,總是做相同的事情沒意思,哈哈~