首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用ctype从嵌入在C中的python调用C函数吗?

问我可以使用ctype从嵌入在C中的python调用C函数吗?
EN

Stack Overflow用户
提问于 2012-06-13 13:21:38
回答 2查看 937关注 0票数 4

我有一个带有嵌入式python代码的C程序。我从源代码中编译了python 2.7.2,并将我的程序链接到libpython2.7.a。

现在,在我的python代码中,我希望从链接到我的C程序的其他C库中调用函数。我可以编写一个python扩展(参见在本文件中扩展嵌入式Python )。但是,ctype会使这件事变得容易得多,并允许我使用一些现有的代码。

ctype面向加载共享库,我想知道是否有一种方法可以将其“指向”到我的静态程序代码。

我无法将相关代码编译到共享库中,因为我的目标是iOS,而AFAIK共享库是苹果禁止的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-13 13:33:08

从Python代码中,您可以为静态函数创建ctype包装器,如下所示:

代码语言:javascript
复制
restype = ctypes.c_int
argtypes = [ctypes.c_int, ctypes.c_double]        # or whatever
functype = ctypes.CFUNCTYPE(restype, *argtypes)
wrapper = functype(address_of_static_function_as_an_int)

当然,您可以从C代码中调用此代码(或类似的)代码。

票数 2
EN

Stack Overflow用户

发布于 2012-06-13 13:40:18

构造一个ctype值(例如ctypes.c_void_p),封装函数指针并将它传递到您的Python代码中。

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

https://stackoverflow.com/questions/11015772

复制
相关文章

相似问题

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