Boost.Python 学习笔记 No.1——python调用c函数

准备条件:

1、从Boost.Python中编译出boost_python.dll和lib来。方法参见boost官方手册,按手册的方法比较简单。

2、安装python。建议用2.x版的,3+版本有些接口变了,boost的支持上貌似还有点问题。

3、配置项目。C++输入文件、链接器等等,需要包含的包括boost/python.hpp,python/include,python/libs/pythonxx.lib,以及编译出来的boost_python.lib

4、把boost_python.dll复制到项目debug/release目录中。

(我用的vc2008)


预期效果:注册一个包含C函数的模块供python调用。


C++测试用的代码(main.cpp):

//模块名必须和BOOST_PYTHON_MODULE(...)中的参数一致(自动生成initModulename()函数用)
//修改.dll扩展名为.pyd,放入python路径的Dlls文件夹中 

#include <boost/python.hpp>
using namespace boost::python;
//需要注册到python中的函数

char const* greet()
{
	return "hello python";
}

//一个dll项目推测只能包含一个MODULE,但同一个module可以注册多个function
BOOST_PYTHON_MODULE(hello)//define module
{
	def("greet", greet);
	//def("func name in python", func pointer);
	//add...
}

python测试用的代码(test.py):

import hello
print hello.greet()


顺利完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值