【发布时间】:2020-05-01 12:46:17
【问题描述】:
我想在 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 调用中看到我的值已更改? 对不起我的英语不好...
【问题讨论】:
-
请注意您的 argtypes 不正确。它必须是一个序列。
(x)不是元组;(x,)(甚至x,)是一个 1 元组。逗号构成元组。 -
另外,你实际上并没有调用函数:)