随笔分类 -  编程

摘要:你将学到什么 在C++中调用Python代码时的返回值问题 基础类型 修改Python脚本(build/zoo.py) 修改源文件(main.cpp) include include using namespace boost::python; using namespace boost::pyth 阅读全文
posted @ 2018-05-25 11:08 银魔术师 阅读(382) 评论(0) 推荐(0)
摘要:你将学到什么 在C++中调用Python代码时的传参问题 基础类型 继续使用前面的项目,但是先修改下Python脚本(zoo.py),添加 和`Str`函数,分别针对整数、浮点数和字符串参数的测试 然后修改下 源文件 编译并测试 标准库 首先修改下Python脚本(zoo.py),添加 、`tDic 阅读全文
posted @ 2018-05-25 11:07 银魔术师 阅读(1036) 评论(0) 推荐(0)
摘要:你将学到什么 如何在Python中调用C++代码 如何在C++中调用Python代码 在Python中调用C++代码 首先定义一个动物类(include/animal.h) 其实现代码如下(src/animal.cpp) 其导出实现如下(src/boost_wrapper.cpp) 最后编写CMak 阅读全文
posted @ 2018-05-25 11:07 银魔术师 阅读(775) 评论(0) 推荐(0)
摘要:导出C++类(纯虚函数和虚函数) 大致做法就是为 class 写一个 warp ,通过 get_override 方法检测虚函数是否被重载了,如果被重载了调用重载函数,否则调用自身实现,最后导出的时候直接导出 warp 类,但是类名使用 class ,析构函数不需要导出,因为它会被自动调用 纯虚函数 阅读全文
posted @ 2018-05-25 11:06 银魔术师 阅读(1753) 评论(0) 推荐(0)
摘要:开发环境搭建 下载源码 "boost_1_66_0.tar.gz" 生成编译工具 编译32位boost库 设置boost动态库加载路径 tee /etc/ld.so.conf.d/boost x86_64.conf 阅读全文
posted @ 2018-05-25 11:06 银魔术师 阅读(622) 评论(0) 推荐(0)
摘要:返回值 使用 return_by_value 有点像C++ 11的 auto 关键字,可以让模板自适应返回值类型(返回值类型必须是要拷贝到新的python对象的任意引用或值类型),可以使用 return_by_value 替换 copy_const_reference 、 copy_non_cons 阅读全文
posted @ 2018-05-25 11:05 银魔术师 阅读(1502) 评论(0) 推荐(0)
摘要:配置环境 导出C++函数 创建工程目录 编写C++函数实现 编写Boost.Python文件 为库编写CMakeLists.txt 编译库 运行python测试库文件 导出C++类 编写C++类实现 编写Boost.Python文件 运行python测试库文件 导出C++类(带构造函数) 编写C++ 阅读全文
posted @ 2018-05-25 11:04 银魔术师 阅读(2003) 评论(0) 推荐(0)
摘要:下载源码 "boost_1_66_0.7z" 生成编译工具 配置Python环境变量(使用VS2017自带的32位python3) 编译32位boost库 使用Virtual Studio 2017创建一个空项目,然后添加源文件 include include include void print( 阅读全文
posted @ 2018-05-25 11:02 银魔术师 阅读(1421) 评论(0) 推荐(0)
摘要:下载源码 "boost_1_66_0.tar.gz" 生成编译工具 编译64位boost库 设置boost动态库加载路径 tee /etc/ld.so.conf.d/boost x86_64.conf 阅读全文
posted @ 2018-05-25 10:46 银魔术师 阅读(393) 评论(0) 推荐(0)