当前位置: 首页 > news >正文

ctypes简单学习

简介

ctypes是Python的外部函数库,提供与C兼容的数据类型,并允许调用DLL或共享库中的函数。可使用该模块以纯 Python形式对这些库进行封装。

Linux与Windows平台不同,使用方法也有所不同,本文聚焦于Linux平台

载入动态链接库

以下是简单示范

1. 生成共享库

1)编辑demo.c

//demo.c
#include<stdio.h>
int prompt(const char *message){
printf("%s \n",message);
return 0;
}

 2)编译生成

$gcc -fPIC -shared -o demo.so demo.c

 2.导入共享库并使用

1)编辑pydemo.py

#pydemo.py
from ctypes import cdll
libObject =  cdll.LoadLibrary('./demo.so')
ibObject.prompt.argtypes = [ctypes.c_char_p]
ibObject.prompt.restype = ctypes.c_int
i = libObject.prompt("hello world")
print(i)

2)运行

$python pydemo.py

......暂时写到这里

重点是python的模块机制--这个思想非常值得大家去学习

1. Extending Python with C or C++ — Python 3.12.5 documentation

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 免费的开源报表工具都有哪些?盘点一下打工人必备的几款开源报表工具!
  • 【日记】黑神话的优化感觉有些微妙(1188 字)
  • 基于java的美食信息推荐系统的设计与实现论文
  • Docker的私有仓库部署——Harbor
  • 超实用超详细的自动补全验证码脚本!切实解决了各种数字、字母、滑动拼图等验证码引发的痛点,两步即可解放双手
  • 小卷原创视频教程:最新fastdfs单机服务搭建
  • 告别U盘:看医院如何挑选高效安全的文件摆渡系统
  • 多线程任务中设置MDC的实践
  • Java中的Stream API详解
  • 吐血整理,最全论文指令手册,还有 ChatGPT 3.5/4.0 新手使用手册~ 【亲测好用】
  • 应用界面设计(原生,自定义控件,设计与交互-小白必看)
  • python从入门到精通:数据容器
  • bbr 多流共存的动态行为
  • UE5.4 - 下载和安装
  • 【附源码】Python :PYQT界面点击按钮随机变色
  • 【React系列】如何构建React应用程序
  • go语言学习初探(一)
  • iOS编译提示和导航提示
  • Java教程_软件开发基础
  • JDK9: 集成 Jshell 和 Maven 项目.
  • log4j2输出到kafka
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • react-native 安卓真机环境搭建
  • Redis字符串类型内部编码剖析
  • RxJS: 简单入门
  • Shell编程
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 测试开发系类之接口自动化测试
  • 番外篇1:在Windows环境下安装JDK
  • 你真的知道 == 和 equals 的区别吗?
  • 世界上最简单的无等待算法(getAndIncrement)
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ​低代码平台的核心价值与优势
  • #DBA杂记1
  • #stm32驱动外设模块总结w5500模块
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (19)夹钳(用于送货)
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (ZT)出版业改革:该死的死,该生的生
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (多级缓存)多级缓存
  • (接口自动化)Python3操作MySQL数据库
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)使用VMware vSphere标准交换机设置网络连接
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .gitignore文件_Git:.gitignore
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .Net 访问电子邮箱-LumiSoft.Net,好用