首页 > 解决方案 > 如何使用 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 调用中看到我的值已更改?对不起,我的英语不好...

标签: pythonc++cctypes

解决方案


您需要int在 Python 中自己分配一个并传递其地址,如下所示:

k = c_int()
d.our_function(byref(k))
print(k.value)

推荐阅读