千家信息网

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

发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,今天就跟大家聊聊有关Python C/C++怎么使用ctypes编写拓展,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。ctypes 是一个Py
千家信息网最后更新 2024年09月25日Python C/C++怎么使用ctypes编写拓展

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

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

C++代码

#include 
#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编写拓展有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

代码 文件 内容 C++ 编译 不同 函数 符号 语言 生成 作用 公众 动态 实际 实际上 对象 教程 数据 方式 是在 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 人类一败涂地端游启动服务器失败 数据库统计表的设计 全国计算机三级数据库技术 张店客户服务crm软件开发 浪潮mf5280m5服务器 张家口服务器机柜多少钱 网络安全数据取证技术培训 网络安全知识的画 剑灵哪个服务器在湖北 什么是网络安全绩效标准 软件开发 原型模型 山东网络技术转让厂家批发价 网络安全考试答案2018 金庸群侠传用什么软件开发 服务器安装完后显示无响应 网络安全评估工程师 网吧软件开发的行业情况 郑州学院网络安全事件 江汉区电商网络安全维护联系人 福建网络时钟监控网管服务器 人类一败涂地端游启动服务器失败 绝地求生端游选择服务器 手机面板尺寸数据库 泸州老窖软件开发 网络技术有什么前途 工行软件开发岗面试经验 设置m3u8的视频服务器 怎么样表格找重复的数据库 软件开发成本估算由谁完成 wily数据库 latex模版
0