双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

[d]python如何获得C函数的返回值

yu332045275 yu332045275 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
向各位请教问题:
我有C代码的头文件和已封装的DLL文件。
头文件中有如下的C代码:

/* Declaration of generic filter hndle, which represents a particular filter */
typedef struct fft_Filter_s* fft_FilterHandle;

/*
* create filter
*/
CWRAPPERS_EXPORT fft_FilterHandle FFTAPI fft_Create_Filter();
/*
* check if download is allowed, filter has to be previously configured
*/
CWRAPPERS_EXPORT char FFTAPI fft_Verify_Download_Allowed(fft_FilterHandle pHandle);


我用python加载了DLL文件为inter_object,对这两个函数进行封装:

@classmethod
def py_fft_create_filter(cls):
fft_create_filter = inter_object.fft_Create_Filter
fft_filter_handle = fft_create_filter()
return fft_filter_handle

@classmethod
def py_fft_verify_download_allowed(cls, p_handle):
fft_verify_download_allowed = inter_object.fft_Verify_Download_Allowed
value = fft_verify_download_allowed(p_handle)
return value


在python的代码中,我调用函数py_fft_create_filter获得其返回值fft_filter_handler,使用pycharm调试时,查看他的值是int型45877328,由于我的另一个函数py_fft_verify_download_allowed将直接使用这个参数,所以我并没有在意这个值的value和他的类型。
我调用py_fft_verify_download_allowed并获得其返回值

return_value = py_fft_verify_download_allowed(p_filter_handle)

在C的代码中,这个函数的返回类型是char,返回值是0或者1,相当于bool型的true和false,但是我用python获得的这个return_value这个值却是int型的769,或者768.

我该如何处理,才能让python代码中的return_value获得的值就是C代码的返回值char类型的0或1呢

--------------------------
Double行动:
原帖分数:40
帖子加分:40
...全文
评论 4
收藏 已收藏
分享
返回顶部
yu332045275
脚本语言 37,738 成员 34,208 内容