ctypes 怎么获取参数返回值?

2021-12-25 11:49:05 +08:00
 19930618

图为 C 的接口 API
按照我的理解,nHandle 值传过去后,nHandle 值应该会改变。是这样理解吗?


nHandle=1
callFunc =CFUNCTYPE(c_long,c_long)
cb=callFunc(nHandle)
res=pDll.P2PAPI_CreateInstance(byref(cb))
print (res)

我写的 python,请问如何获取他改变后的 nHandle 值
1848 次点击
所在节点    Python
3 条回复
wwqgtxx
2021-12-25 12:22:19 +08:00
你需要的是 pointer 而不是 byref
https://docs.python.org/3/library/ctypes.html#pointers
19930618
2021-12-25 13:20:28 +08:00
@wwqgtxx 改成 pointer 了,但请问如何获取改变后的 nHandle 值呢
wwqgtxx
2021-12-25 20:55:51 +08:00
@19930618 人家就是个指针,你接着把这个 pointer 传给别的需要这个 nHandle 的函数不就行了,真的想拿到值就调用 .contents 呗,文档写的不是够清楚的了,还是说你需要看一份中文文档?
https://docs.python.org/zh-cn/3/library/ctypes.html#pointers

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/824368

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX