boost.python
boost.python
lainegates
think more, code less.
展开
-
Python C API 解读随笔 ----简介篇
读别人的代码,看到C++和Python接口感觉自己还欠缺太多,有些地方不知道如何实现调用的,得补补这块知识。此篇仅为随笔,记录我的觉得是要点的内容。1.Python与C++有两种方法交互,一种为C++程序封装Python接口,这样可以用Python调用C+模块。第二种,在C++程序上嵌入Python支持,这一种比较高级,Python C API推荐熟悉了第一种,再做第二种。2.原创 2014-02-23 17:22:43 · 3790 阅读 · 0 评论 -
boost.python 初级教程
python便于快速开发,并且python底层是c,与c的兼容性非常好,用python快速开发,用c++开发性能要求较高的模块是一个非常理想的选择。python自带一个ctypes,使用非常方便,但是不支持c++的类,swig使用又比较繁锁,幸好还有boost.python,使用非常方便,并且可以导出类!boost.python的安装:我的环境是win7 x64 + vs2原创 2012-09-22 22:06:30 · 4598 阅读 · 0 评论 -
boost.python -- 继承
以官网文为本,尽量翻译下,方便以后看。我使用的boost 版本为1.5.1 。原谅网址:http://www.boost.org/doc/libs/1_51_0/libs/python/doc/tutorial/doc/html/python/exposing.html#python.inheritanceInheritance继承In the previous原创 2012-10-18 15:39:26 · 3543 阅读 · 0 评论 -
boost.python -- 继承 (2)
先前翻译过一篇boost.python 继承方面的官方教程,现在自己研究了下,发现了一些问题。首先我的boost直接使用官方给的安装工具,在线下载了所需的二进制dll,直接使用的,出现了一些问题,比如c++中使用printf和cout输出的内容全不可见,然后我想了个折衷的办法,将输出的内容写文件,反正编译的时候没少生成很多小的碎文件,也不在乎多这一个。就举其中例子吧:void wr原创 2012-10-20 11:52:07 · 1579 阅读 · 1 评论 -
boost.python vector_indexing_suite 使用注意事项
今天使用boost.python封装一个vector,出现了错误。代码大致如下:class Point{public: Point( double xt , double yt ):x(xt) , y(yt){} double getX(){ return x; } double getY(){ return y; } double x ; double y ;};原创 2012-10-23 13:13:31 · 3537 阅读 · 0 评论 -
boost.python 使用时注意小事项
boost.python 非常方便而强大,它几乎可以做到不修改原有c++设计就能完成封装,也就是说,只给出编译好的库和头文件,就可以完成封装。我发现有几个要注意的点:1.要封装的代码编译成库之后再用boost.python封装。boost.python可以封装编译好的c或c++程序,但是同时也带来了问题,比如,你有一个工程的源代码,不想编译好库再封装,想一次完成,推荐不要这么做。今天我原创 2012-10-23 13:23:38 · 1976 阅读 · 2 评论 -
python/c++接口库比较(SWIG,boost.python, pycxx, py++, sip, Weave, Pyrex )
目前有很多开源的python/c++ 绑定工具,搜了好多岾子,这里稍微总结下。SWIG支持 Python 2 and 3配置正确的话,可以全自动完成封装(*.i文件需要自己写)当不是全自动的时候,它大多会重复你的.h文件并给出提示除了Python外,还支持其他语言(Java, Ruby, Lua, 等)输出一个本地文件(这个文件会被编译成.pyd)和一个封装(这原创 2014-02-20 18:34:35 · 9127 阅读 · 2 评论