【发布时间】:2020-05-29 05:09:06
【问题描述】:
我有一个固定的 C 库作为 DLL 文件。 DLL 文件具有一些安全功能,这就是我无法查看库的原因。我只知道函数名和需要的数据类型。
我需要在 Python 中给函数一个指向我的 var 的指针,即内存中的地址。我尝试使用 ctypes 但它不会工作。用于加载库。我使用 ctypes。
这是我需要启动的所有必需变量的函数。
function (
const unsigned char* input_array,
unsigned int multiply_by,
unsigned char* output_array
);
所以我像这样在 Python 中初始化我的变量:
input_array = "100"
multiply_by = 5
output_array = "000"
之后我加载我的库并启动函数。
lib = CDLL('func_lib.dll')
lib.function( hex(id(input_array)),
multiply_by,
hex(id(output_array))
)
函数不会改变变量 output_array,这是它的目标。我可以看到该函数被调用,因为没有调用错误。我是不是处理错了指针?
编辑:我将函数简化为 3 个变量,更多变量也是一样的。我也认为 input_array 是问题所在。被调用的函数给我一个反馈代码,上面写着 input_array 是错误的。我不知道如何将指针地址发送给函数。
【问题讨论】:
标签: python c pointers ctypes extern