PythonC/C++怎么使用ctypes编写拓展

今天就跟大家聊聊有关Python C/C++怎么使用ctypes编写拓展,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

为资溪等地区用户提供了全套网页设计制作服务,及资溪网站建设行业解决方案。主营业务为成都做网站、网站建设、资溪网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

ctypes 是一个Python 标准库中的一个库.为了实现调用 DLL,或者共享库等C数据类型而设计.它可以把这些C库包装后在纯Python环境下调用.本教程是在MAC下进行的.

C++代码

#include <stdio.h>
#ifdef __cplusplus 
    #define XETR extern "C"
#else
    #define XETR
#endif   

#ifdef _WIN32
    #define LIB XETR __declspec(dllexport)
#else
    #define LIB XETR
#endif

LIB  void CtypesDemo(const wchar_t *str,int x,int y){
    printf("Cpp %ls %d\n",str,x+y);
}        
 

因为系统不同,调用方式不同
_WIN32:表示win32和win64
__declspec(dllexport)用于Windows中的动态库中,声明导出函数、类、对象等供外面调用。
extern "C" 的作用是让 C++ 编译器将 extern "C" 声明的代码当作 C 语言代码处理,可以避免 C++ 因符号修饰导致代码不能和C语言库中的符号进行链接的问题。

 

将C++文件编译成so文件

g++ -fPIC -shared -o ctypes ctypes.cpp
 

windows用户可以使用Visual studio 2015编译生成dll文件。
在mac和linux没有dll文件,一般都是so文件。

 

Python代码调用

from  ctypes import *
lib=CDLL("ctypes")
lib.CtypesDemo("公众号:Python学习开发",4,5)

关于ctype是的基本用法大概就这么多,实际上在编写Python拓展库的时,如果要最终生成Python模块并导入使用,就要遵循Python API进行编写,所有的函数定义都是遵循一定的规则。

看完上述内容,你们对Python C/C++怎么使用ctypes编写拓展有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。

当前文章:PythonC/C++怎么使用ctypes编写拓展
转载来于:https://www.cdcxhl.com/article40/isjoho.html

成都网站建设公司_创新互联,为您提供手机网站建设网站改版移动网站建设全网营销推广微信公众号网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营