python ctypes实现api测试_Windows下通过Python 3.x的ctypes调用C接口
在Python中可以通过ctypes来调用动态库中的C接口,具体操作过程如下:
1. 使用vs2013创建一个加、减、乘、除的动态库,并对外提供C接口,code内容如下:
math_operations.hpp:
#ifndef TEST_DLL_1_MATH_OPERATIONS_HPP_
#define TEST_DLL_1_MATH_OPERATIONS_HPP_
#define FBC_EXPORTS __declspec(dllexport)
#ifdef __cplusplus
extern "C" {
#endif
FBC_EXPORTS int add_(int a, int b);
FBC_EXPORTS int sub_(int a, int b);
FBC_EXPORTS int mul_(int a, int b);
FBC_EXPORTS int div_(int a, int b);
#ifdef __cplusplus
}
#endif
#endif // TEST_DLL_1_MATH_OPERATIONS_HPP_
math_operations.cpp:
#include "math_operations.hpp"
#include
FBC_EXPORTS int add_(int a, int b)
{
fprintf(stdout, "add operation\n");
return a + b;
}
FBC_EXPORTS int sub_(int a, int b)
{
fprintf(stdout, "sub operation\n");
return a - b;
}
FBC_EXPORTS int mul_(int a, int b)
{
fprintf(stdout, "mul operation\n");
return a * b;
}
FBC_EXPORTS int div_(int a, int b)
{
if (b == 0) {
fprintf(stderr, "b can't equal 0\n");
return -1;
}
return (a / b);
}
2. python代码如下:
import ctypes
lib = ctypes.cdll.LoadLibrary("E:/GitCode/Python_Test/lib/rel/x64_vc12/Test_DLL_1.dll")
a = 9; b = 3
value = lib.add_(a, b)
print("add result:", value)
value = lib.sub_(a, b)
print("sub result:", value)
print("mul result:", lib.mul_(a, b))
print("div result:", lib.div_(a, b))
执行结果如下:
python ctypes实现api测试_Windows下通过Python 3.x的ctypes调用C接口相关推荐
- python的windows出现问题_Windows下使用python库 curses遇到错误消息的解决方案
在Windows系统下执行python应用时,有时会遇到错误信息: ModuleNotFoundError: No module named '_curses'. 然而查看Windows系统里pyth ...
- python虚拟环境 windows环境搭建_windows下安装Python虚拟环境virtualenvwrapper-win
1.安装 执行命令 pip install virtualenv 为了使用virtualenv更方便,可以借助 virtualenvwrapper 执行命令 pip install virtualen ...
- python虚拟环境 windows环境搭建_windows 下搭建python虚拟环境(示例代码)
################################### windows 下测试环境 C:\Users\wongg\django-cmdb>cd ..\cmdb ##下载get-p ...
- 如何在python中安装matplotlib模块_Windows下为Python安装Matplotlib模块
这玩意反反复复弄了一晚上,这里详细叙述下如何安装,肯定会对大家有所帮助.首先默认大家都装了Python,这个从官网下基本不会有任何难度. (1)Setuptools的安装 为啥先说这个,后面所有whl ...
- 尚学python课程---11、linux环境下安装python注意
尚学python课程---11.linux环境下安装python注意 一.总结 一句话总结: 准备安装依赖包:zlib.openssl:yum install zlib* openssl*:pytho ...
- 执行后可以查看python的版本的是_windows肿么查看python opencv 版本
Python是解释型脚本语言,在执行时,逐句解释执行,不需要进行预编译.但需要有自身的Python解释器. 所以在执行Python代码时,需要指定python解释器. 指定解释器方法: 在文件开头添加 ...
- python ctypes实现api测试_Python与C之间的相互调用(Python C API及Python ctypes库)
2010-01-24 17:58 14237人阅读 评论(11) 我实现 Python C API 此部分可以参考我原来的文章< 准备工作: 闲话少说,看看Python C API.事实上,Py ...
- python rest api 测试_如何用Python编写REST API的单元测试
在过去的几个月中,正在从事一个名为B的项目.它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章.B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些 ...
- windows下python依赖包_windows下安装python拓展包
安装Python集成开发环境IDE 2.IPython:方便今后编译其他扩展库,占用空间92.8M: sudo apt-get install python-dev IPython 为了安装最新版的I ...
最新文章
- tensorflow-gpu
- 哈尔滨工业大学-数据库系统(基本知识与关系模型3)
- 雷林鹏分享:C# 多态性
- mac 安装brew及设置国内镜像
- android 获取GPS定位,
- html table 显示最后一条,漂亮CSS表格(Table),最后一行是汇总行【实例】
- Winform中自定义xml配置文件后对节点进行读取与写入(XmlDocument)
- 将小程序代码转成uni-app代码
- Excel导入SQLserver数据长度过长导入失败
- graphpad分组百分比柱状图_Graphpad与SPSS完成分组柱形图教程
- Python基础编程(一)
- python mq_解析Python实现MQ消息队列以及消息队列的优点
- 希捷硬盘固件指令要领
- 天池二手车交易价格预测— 赛题理解 + 数据分析
- 电脑电话,怎么用电脑打电话
- 中国智能传感器投资规划建议及前景方向预测报告2022年版
- 紫光收购武汉新芯后长江存储成立 赵伟国任董事长
- 大连商务英语培训百家外语国际部怎样提高商务英语阅读技能?
- 尼古拉·特斯拉——一个比爱迪生更伟大却被世界遗忘的科学巨人
- 分布式监控:zabbix trapper方式监控