预备条件:
语言条件: Boost1.64.0 、Python2.7
开发环境及工具:win10,VS2015,Pycharm
实现目标:
1. C++编写动态库供Python使用
2. C++调用Python代码
3. 工具封装C++类支持Python调用
资源地址:
Boost下载地址:https://osdn.jp/projects/sfnet_boost/releases/
Python下载地址:https://www.python.org/downloads/windows/
一、C++编写动态库供Python调用
1.新建工程,PythonAndC,win32 Console Application工程,下一步。
2.照着图中的选择进行修改属性,然后ok。新建工程ok
3.修改工程属性,修改输出后缀为pyd,这样才可以被python识别;修改Character Set为No Set.
4.新建Cpp文件,名字与工程名字一样
5.代码如下:
#include <boost\python.hpp>
using namespace boost::python;
std::string GetString()
{
return "GetTestString";
}
BOOST_PYTHON_MODULE(PythonAndC)
{
def("GetString", GetString, "test Function");
}
6.编译生成pyd,以及Lib
7.拷贝生成的pyd,lib到python安装目录下的libs,Dlls下,顺便把python的动态库也拷贝过去,如下图
8.环境准备好了,然后打开控制台,导入之前建立的pyd动态库
python
import PythonAndC
print PythonAndC.GetString();
然后就可以看到如下结果: