栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在C中为函数指针回调函数编写Python ctypes

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在C中为函数指针回调函数编写Python ctypes

您的回调类型签名错误;您忘记了结果类型。当函数退出时,它也会收集垃圾。您需要使其全球化。

您的

GetStatus
电话缺少论据
pArg
。另外,在使用指针时,您需要定义
argtypes
,否则在64位平台上会遇到问题。ctypes的默认参数类型为C
int

from ctypes import *api = CDLL('API.dll')StatusCB = WINFUNCTYPE(None, c_int, c_int, c_void_p)GetStatus = api.GetStatusGetStatus.argtypes = [StatusCB, c_void_p]GetStatus.restype = Nonedef status_fn(nErrorCode, nSID, pArg): print 'Hello world'    print pArg[0]  # 42?# reference the callback to keep it alive_status_fn = StatusCB(status_fn)arg = c_int(42) # passed to callback?def start(): GetStatus(_status_fn, byref(arg))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号