python可以包vc程序嘛

python可以包vc程序嘛,第1张

Python可以调用VC的模块。

Python调用C++在Python脚本里添加其中ctypes是Python的一个库液段,提供和C语言兼容的数据类型,可以很方便地调用CDLL中的函数。运行以上脚本得到:显示调用C++程序成功。

采用这个方法,我们不用进行大量的改写,也能在Python中使用早埋迅我们积累的各陆此种C++程序了。

二、Python调用C/C++1、Python调用C动态链接库Python调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可。(1)禅仔C语言文件:pycall.c[html]viewplaincopy/***gcc-olibpycall.so-shared-fPICpycall.c*/#include#includeintfoo(inta,intb){printf("youinput%dand%d\n",a,b)returna+b}(2)gcc编译生成动态库libpycall.so:gcc-olibpycall.so-shared-fPICpycall.c。使用g++编译生成C动态库的代码中的函数或者方法时,需要使用extern"键拦C"来进行编译。(3)Python调用动态库的文件:pycall.py[html]viewplaincopyimportctypesll=ctypes.cdll.LoadLibrarylib=ll("./贺亮汪libpycall.so")lib.foo(1,3)print'***finish***'(4)运行结果:2、Python调用C++(类)动态链接库需要extern"C"来辅助,也就是说还是只能调用C函数,不能直接调用方法,但是能解析C++方法。不是用extern"C",构建后的动态链接库没有这些函数的符号表。(1)C++类文件:pycallclass.cpp[html]viewplaincopy#includeusingnamespacestdclassTestLib{public:voiddisplay()voiddisplay(inta)}voidTestLib::display(){cout#include#includeintfac(intn){if(n<2)return(1)/*0!==1!==1*/return(n)*fac(n-1)/*n!==n*(n-1)!*/}char*reverse(char*s){registerchart,/*tmp*/*p=s,/*fwd*/*q=(s+(strlen(s)-1))/*bwd*/while(p


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12390216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存