python - 如何使用 ctypes 在 python 中查看指针值的变化
问题描述
我想在 C 中实现 void 函数,在该函数中我将更改指针值,如下所示:
void func(int* k){ *k = 9; }
如您所见,这里我正在更改 k 值,假设为 9。如何使用 ctypes 在 python 中编写此函数,以便我可以看到更改后的值是什么,在 C 中。让我们说下面的 python 代码示例
import ctypes
d = ctypes.CDLL(r'mydll.dll')
d.our_function.argtypes = (ctypes.POINTER(ctypes.c_int))
如您所见,没有返回,那么我如何在 python 调用中看到我的值已更改?对不起,我的英语不好...
解决方案
您需要int
在 Python 中自己分配一个并传递其地址,如下所示:
k = c_int()
d.our_function(byref(k))
print(k.value)
推荐阅读
- python - 由于循环中的初始化,从 tf.Session 中删除标准输出输出
- tcpdf - TCPDF 多张大图内容
- arrays - 从单元格内引用全局数组
- java - 如何强制客户端仅在调用端点(A)的特定时间后才调用端点(B)
- python - 无法使用 Interceptty 或 slsnif 嗅探通过串口发送的数据
- angular - 网络插件在 PWA 应用程序 Ionic 4 上不起作用
- ajax - ajax在IE中不传参数
- python - Python:如何在函数调用周围动态放置一个循环?
- go - Vgo build 触发“未知指令:go”?
- javascript - 自定义功能用户不醒来的角色,嵌套查询,prisma graphql