首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >传递.h文件中定义的结构指针的Python C类型。

传递.h文件中定义的结构指针的Python C类型。
EN

Stack Overflow用户
提问于 2018-07-10 10:49:59
回答 1查看 1.4K关注 0票数 0

我是ctype和C的新手,在通过ctype将struct指针变量传递给在python中调用的c函数时遇到了麻烦。如果它太基础和明显,请容忍我。下面是我的c代码的样子。

代码语言:javascript
复制
#include "mylib.h"   (inside this mylib.h file MYSTRUCT is defined)

struct MYSTRUCT* modifystruct(a,b,c,d,e)
{
MYSTRUCT *mystpointer;
.....
.....
return mystpointer;
} 


int mycfunction(mystpointer)
MYSTRUCT *mystpointer;
{
.........
.........
.........
}

与上面一样,修改结构函数update *mystpointer是一个指向MYSTRUCT的指针并返回它。mycfunction的作用是传递返回的mystpointer。在C中,这在main函数中工作得很好。但是,当我尝试使用ctype将".so“文件加载到python中时,它失败了,并且我认为我没有正确地定义mystpointer的argtype。下面是我写的简短的python代码。假设上面的c代码被编译为"mycmodule.so“。

代码语言:javascript
复制
mylib=cdll.LoadLibrary("mycmodule.so")
mycfunction=mylib.mycfunction
mycfunction.restype=c_int
mycfunction.argtypes=[c_void_p]
mystpointer=c_void_p()

在C代码中,我必须将mystpointer类型定义为"MYSTRUCT *mystpointer“;但是,我不知道如何在ctypes中这样做……相反,我将类型定义为c_void_p,但这会触发失败。提前感谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51256595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档