博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python和C|C++的混编(一):Python调用C、C++---Boost库
阅读量:6037 次
发布时间:2019-06-20

本文共 856 字,大约阅读时间需要 2 分钟。

不使用boost.python库来直接构建dll的话比较繁琐,下面实例是借助boost库实现python对C、C++的调用

1 首先确定已经安装python和boost库,本例测试环境是python2.7,boost_1_54_0 ,在vs平台下实现

2 vs建立dll工程,vs下boost库的环境配置参加上篇博文,记得包括python的依赖库:E:\Python27\include和E:\Python27\libs

3 编写代码即可

 

#include 
#include
using namespace boost::python;std::string strtmp;char const* Recognise(const char* url){ strtmp="get data from dll..."; strtmp+=url; return strtmp.c_str();}BOOST_PYTHON_MODULE(Pyutil){ def("Recognise",Recognise);}

 

4 运行,将生成的dll和lib文件拷到python的工作目录,将dll的后缀该为pyd,然后就可以使用了

 

import Pyutilresult = Pyutil.Recognise("192.168.1.1")print "the result is: \n"+ result

 

 

5 需要注意的问题和可能遇到的问题:

 

(1)dynamic module does not define init function,请检查模块的名字和dll的名字一致性

(2)注意vs需要release下进行

(3)使用boost静态python库的话需要在属性->Preprocessor->Preprocessor Definitions中定义BOOST_PYTHON_STATIC_LIB,否则编译的为动态,会提示找不到python_boost*.lib什么的

 

转载地址:http://bmrhx.baihongyu.com/

你可能感兴趣的文章
smartcar.urdf.xacro
查看>>
C#设计模式学习笔记-单例模式
查看>>
BaseActivity
查看>>
django 使用mysql数据库的流程
查看>>
Java基础之String类
查看>>
数据库--释放mysql数据库资源
查看>>
jQueryUI Repeater 无刷新删除 新建 更新数据 - JQueryElement [7]
查看>>
FOJ有奖月赛-2015年11月 Problem A
查看>>
《Maven实战》第10章 使用Maven进行测试
查看>>
hdu1116
查看>>
AD集成库元件简写中英文对照表
查看>>
C#Ftp的下载实例
查看>>
HDU4335 What is N? [数论(欧拉函数)]
查看>>
会声会影字幕制作
查看>>
电商网站中添加商品到购物车功能模块2017.12.8
查看>>
由支付宝当面付引发的NatApp方便调试回调
查看>>
享受LINQ:判断一组文字是否在字符串中同时出现的最简单方法
查看>>
UVA1437 String painter
查看>>
poj 1671 Rhyme Schemes
查看>>
HDU 2639 Bone Collector II DP
查看>>