我可以使用ctypes从C中嵌入的python中回调C函数吗?
发布时间:2020-12-16 07:31:02 所属栏目:百科 来源:网络整理
导读:我有一个嵌入了 python代码的C程序.我从源代码编译了python 2.7.2,并将我的程序与libpython2.7.a相关联. 现在在我的python代码中,我希望调用链接到我的C程序的其他C库中的函数.我可以编写一个python扩展(参见this document中的扩展嵌入式Python).但是,ctypes
我有一个嵌入了
python代码的C程序.我从源代码编译了python 2.7.2,并将我的程序与libpython2.7.a相关联.
现在在我的python代码中,我希望调用链接到我的C程序的其他C库中的函数.我可以编写一个python扩展(参见this document中的扩展嵌入式Python).但是,ctypes会使这更容易,并允许我使用一些未加密的现有代码. ctypes面向加载共享库,我想知道是否有办法将其“指向”我的静态程序代码. 我无法将相关代码编译到共享库中,因为我的目标是iOS,Apple禁止AFAIK共享库. 解决方法
从Python代码中,您可以为静态函数创建ctypes包装器,如下所示:
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代码中调用此(或类似)代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Flash AS3 Study (只为记录一部分东西,到时候会
- cocos-js,clippingNode的使用(1)
- iphone – 如何将核心数据包含在Xcode中已经创建
- Oracle 高水位(HWM: High Water Mark)
- 如何正确地将程序参数* char转换为int?
- Sqlite 数据类型
- ruby-on-rails – 如何说服我的经理进行rails 3升
- ruby-on-rails – mongoid中references_many和ha
- swift – ‘类’className’的NSManagedObject必
- ruby-on-rails – 我的存根上的rspec put请求的正
热点阅读