一,前言
上篇我说过了,正在开发一个小工具,那么遇到一个小问题,就是crc算法c语言已经有了,我做成dll动态库,后让python调用不就好了。
二,需求
要传变量地址或数组首地址,加长度。返回值为uint。
三,实现
折腾了一把后实现了。原来用的是ctypes技术。
import ctypes
from ctypes import *
dll = ctypes.cdll.LoadLibrary("./crcDll.dll")
CRC=dll.CRC_Cal
CRC.restype=c_uint # 返回值为uint,否则出现负值
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,但是从来没有传地址。今天又学到一招,小工具也完成了。我就喜欢折腾,总是做相同的事情没意思,哈哈~
网友评论