- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将 Python 对象转换为 C void 指针,以便可以从 C API 调用它,但是以下代码似乎不起作用从 ctypes 导入 *
class myclass:
def __init__(self):
self.val = 6
return
foo = myclass()
data = c_void_p(foo)
输出:
Traceback (most recent call last):
File "test.py", line 26, in <module>
data = c_void_p(foo)
TypeError: cannot be converted to pointer
我也尝试过 pointer() 和 byref(),但它们都不起作用。我怎样才能实现我想要做的事情?提前致谢。
最佳答案
使用 data = ctypes.py_object(foo)
。
ctypes.py_object
表示 C 中的 PyObject *
类型。
关于python - 将 Python 实例转换为 ctypes.c_void_p,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48935590/
我已经定义了 ctypes 结构,像这样: class MyStruct(Structure): _fields_ = [('x', ctypes.c_ulonglong), ('y', ct
给定一个字符串: msg="hello world" 如何将其定义为 ctypes.c_void_p() 数据类型? 以下代码会产生“无法转换为指针”异常: data=ctypes.c_void_p(
我有一个关于 Python 的 ctypes 和调用 C 函数的问题困扰了我几天。我正在使用 Python 3.5 和 ctypes 来包装 C .dll。 我有一个接受 void ** 作为输出参数
我有一个使用 ctypes 的 C 库包装函数,看起来像这样 rrpLib.getParameterValueAsPointer.restype = c_void_p def getParameter
我目前正面临 ctypes 的问题。我有一个 C 函数 foo 这样: void** foo(int); 我必须为 foo 函数定义一个回调函数。所以: FOO_FUNC = CFUNCTYPE(PO
长话短说,我试图将字典列表传递到容器类中,目的是每个字典都将用于实例化另一个类。问题是每个字典都包含一个要分配给子类的函数对象引用,并且由于某种原因,就在最里面的子类被实例化之前,它从 python
我正在与一个返回不透明指针的库交互。子类化 c_void_p 以在 ctypes 中表示它并为 c_void_p 的这种特殊风格提供类型检查是否可以接受? 最佳答案 进行这种类型检查的一种简单方法可能
我正在尝试将 Python 对象转换为 C void 指针,以便可以从 C API 调用它,但是以下代码似乎不起作用从 ctypes 导入 * class myclass: def __ini
我正在与 ctypes 合作并且似乎无法弄清楚如何使用自定义数据类型。希望有一个 C++ 公共(public)方法的 Python 接口(interface) cell类和 C++ cellCompl
在 Python 应用程序中,我有一个包含一些数据的字节数组。我的python代码由一些外部 native 库(DLL/so/dylib)调用(使用ctypes及其 callback function
首先我知道Python ctypes, pass c_void_p as an out parameter to c function以及他们建议的解决方案,但我无法通过他们的回答使其发挥作用。反正我
我正在使用第 3 方 DLL 加载一些原始图像数据,并且我想将此原始图像数据用作 openGL 中的纹理。然而,c 函数返回一个 void*,我需要以某种方式转换它,以便它将作为 glTexImage
我正在编写一个包含一些 C++ 代码的 Python 模块。我曾经使用这个函数将一个指针从 C++ 传递给 Python(该指针将被另一个函数释放 DLLEXPORT void* run(double
我似乎找不到任何将 ctypes.c_void_p() 转换为字符串或字节数组的简单示例。有没有简单的衬里可以做到这一点? 最佳答案 给你: import ctypes as ct # set up
我经常使用 ctypes,但我遇到了一些我无法解释的事情。 首先,当我使用 c_void_p 定义回调时,回调将接收一个固定整数。 我看到一些其他帖子提到在使用 c_void_p 作为返回值时将 c_
我需要转换 multiprocessing.Array到 c_void_p 中。目前我所拥有的是: shared_mem_bfr = multiprocessing.Array(c_uint8, im
奇怪的是,即使在设置了 restype 之后,python 仍会返回 long 而不是 c_void_p。 例如; # python code from ctypes import * dll = w
我需要将用 C++ 创建的 ArrayFire 数组共享给 Python。没问题: PyObject* arrayToPyObject(const af::array& arr) { // C
我是一名优秀的程序员,十分优秀!