从python var到c lib获取内存地址

问题描述 投票:0回答:1

我有一个固定的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错误。我不知道如何将指针地址发送给该函数。

python c pointers ctypes extern
1个回答
0
投票

参数bigarray在函数签名中声明为const unsigned char *。如果这是正确的,那么更改bigarray变量的机会就很小。

© www.soinside.com 2019 - 2024. All rights reserved.