我有一个固定的C库作为DLL文件。 DLL文件具有一些安全功能,这就是为什么我无法查看库的原因。我只知道函数名和数据类型是必需的。
我需要在Python中为我的var赋予函数指针,在内存中添加地址。我尝试使用ctypes,但无法正常工作。用于加载lib。我使用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错误。我不知道如何将指针地址发送给该函数。
参数bigarray在函数签名中声明为const unsigned char *
。如果这是正确的,那么更改bigarray变量的机会就很小。