小编dol*_*lby的帖子

如何使用ctypes将数组从C++函数返回到Python

我正在使用ctypes在Python中实现C++函数.C++函数应该返回一个指向数组的指针.不幸的是我还没弄明白,如何在Python中访问数组.我试过numpy.frombuffer,但那不成功.它只返回了一个任意数字的数组.显然我没有正确使用它.这是一个大小为10的数组的简单示例:

function.cpp的内容:

extern "C" int* function(){
int* information = new int[10];
for(int k=0;k<10;k++){
    information[k] = k;
}
return information;
}
Run Code Online (Sandbox Code Playgroud)

wrapper.py的内容:

import ctypes
import numpy as np

output = ctypes.CDLL('./library.so').function()

ArrayType = ctypes.c_double*10
array_pointer = ctypes.cast(output, ctypes.POINTER(ArrayType))
print np.frombuffer(array_pointer.contents)
Run Code Online (Sandbox Code Playgroud)

要编译我正在使用的C++文件:

g++ -c -fPIC function.cpp -o function.o
g++ -shared -Wl,-soname,library.so -o library.so function.o
Run Code Online (Sandbox Code Playgroud)

你有什么建议我在Python中访问数组值吗?

c++ python arrays ctypes return

22
推荐指数
2
解决办法
2万
查看次数

Python:专注于ttk.Notebook标签

我还没想出如何将焦点设置在ttk.Notebook的特定选项卡上.focus_set不起作用.有可能吗?

提前致谢

python focus tkinter ttk

4
推荐指数
1
解决办法
4428
查看次数

标签 统计

python ×2

arrays ×1

c++ ×1

ctypes ×1

focus ×1

return ×1

tkinter ×1

ttk ×1