用于从Python调用C++代码的CFFI模块

CFFIpp的Python项目详细描述


CFFIpp是类似[CFFi](http://cffi.Read Tex.org),但是BR/>通过C++将其映射到C,通过BR/> BR/>许可证< BR> > BR/= BR/>< BR/> CFFIpp是自由软件:您可以重新发布和/或修改< BR/>根据GB/T/R> Free发布的GNU通用公共许可证的条款。软件基础,许可证的第3版,或BR/>(按您的选择)任何后续版本。
BR/> CFFIpp被分发,希望它是有用的,
但没有任何保证;甚至没有隐含的保证BR/>适销性或适合特定用途。有关详细信息,请参阅gnu通用公共许可证。

如果没有,请参见http://www.gnu.org/licenses/>;


示例
==


>直接来自单元测试:

``python
ffi=ffipp()
ffi.cdef(“
class testclass{
public:
testclass();
void test(int);
int returnsint(int);
私有:
void shouldnotbeimodule();
};
“”
自.asserttrue(ffi.has_class(“testclass”))


ffi.set_source(“example_module”,“br/>类testclass{
公共:
testclass(){
void test(int){/*nop*/}
int returnsint(int){return 1;}
私有:
void shouldnotbeimodule(){/*nop*/}
};“”“
ffi.compile()
import example_module
c=example_module.testclass()
self.assertequal(c.returnsint(5),1)
`````

这是一个实验软件;
2。在Python和C++类之间添加一个(虽然很小)层,使用一个愚蠢的C包装器。不支持重载,还没有类型转换,除了“cffi”之类的东西。从方法返回C++对象将不会产生Python对象。
5。只会包装类,目前不能与c混合。
6.具有讽刺意味的是,您可能需要cPython来运行此操作,因为它依赖于BR/> CLAN绑定来处理C++代码。
开发< BR/>开发版= BR/> BR/>开发在[我的GITLab]仓库中进行(http://gITLab.COM/RuDOS/CFFIP/)。如果你想开始攻击这个项目,
请随意这样做。好的起点是todo.md文件和前面列出的注意事项。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java组织。openqa。硒。遥远的UnreachableBrowserException如何定义EXE路径?   java Camel AdviceWith不使用指定文件替换端点   基于字符串的java图像加载   Java中的启发式算法,计算8个谜题状态的线性冲突   java为什么不支持文件。probeContentType返回null   JPA@EntityListeners、@PrePersist和Spring@RepositoryEventHandler、@HandleBeforeSave之间的java差异   可能前缀的Java字符串到字符串[]   安装rJava | Makefile时发生java错误。全部:38:target’libjri的配方。所以他失败了   Java公共静态void main()   java如何覆盖txt文件中的某些单词   java如何获得循环中生成的字符值之和?   java Log4j创建另一个具有相同属性的appender   java如何在从Axis2 Web服务客户端通过代理服务器调用Web服务时设置代理设置?   在Windows上安装Elasticsearch时发生java错误   java如何向EditText组件添加TextChangedListener?