Flutter开发App的未来及其在各行业的应用潜力分析
895
2022-11-20
vs2010用 boost.python 编译c++类库 供python调用
VS2010建立一个空的DLL
项目属性中配置如下 链接器里的附加库目录加入,python/libs(python的安装目录中),boost/vs2010/lib(生成的boost的目录中)
c/c++的附加库目录加入,boost(boost的-目录),python/include(python的安装目录)
代码文件加入引用
#include
生成的DLL文件,需改成和导出模块一致的名称,后缀为PYD将此PYD文件与生成的BOOST/LIB中的boost_python-vc100-mt-1_46_1.dll 一同拷入工作目录,在此目录中新建py文件,就可以 直接 import 模块名,进行使用
示例:hello.cpp
#include
示例:hc.h 继承hello的子类
#pragma once #include "hello.cpp" class hc:public Hello { public: hc(string str); ~hc(void); int add(int a,int b); };
hc.cpp
#include "hc.h" hc::hc(string str):Hello(str) { } hc::~hc(void) { } int hc::add(int a,int b) { return a+b; }
导出的类pyhello.cpp
#include "hc.h"
#include
python项目中调用 dll的目录包含文件:
1,boost_python-vc100-mt-1_46_1.dll
2,dll.py 调用dll的py文件
3,hello_ext.pyd 由上述c++生成的dll文件改名而成
dll.py内容:
import hello_ext he=hello_ext.Hello("testdddd") print he.get() he.hestr="ggggddd" print he.hestr te=hello_ext.hc("fffff") print te.get() te.hestr="ddffg" print te.hestr print te.add(33,44)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~