如何在Python cType中传递char **,一旦它在“C++”代码中被修改,我如何访问

2024-04-25 04:52:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用ctypes从python访问c++函数

int func(void**, char**policy_names) {

   // 1.allocate memory to policy_names
   // 2.fill policy_names with policy names ex: policy_names[0] ="hi" policy_names[1]="bye"

        return 0; 
  }

内存分配发生在上面提到的c++func中,策略名称由字符串列表填充。你知道吗

python代码:

policy_list = POINTER(c_char)()

Handle = c_void_p()

Getpolicy = lib.func()

func.argtypes = [c_void_p, POINTER(POINTER(c_char))]

x = GetPolicy(Handle, policy_list)

我的问题是

  1. 使用ctypes传递char** args是正确的方法吗??你知道吗
  2. c++函数分配后,填充policy_names如何在python中访问它??你知道吗

Tags: to函数namespolicyctypesfilllistint
1条回答
网友
1楼 · 发布于 2024-04-25 04:52:32

我研究了一下怎么修好的

应采用以下方式:

我正在尝试使用ctypes从python访问c++函数

python代码:

policy\u list=指针(c\u char\u p)()

句柄=c\u void\u p()

获取策略=库函数()

x=GetPolicy(句柄,策略列表)


  1. 如何访问它

策略列表[0]。。。。。你知道吗

相关问题 更多 >