在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接口相关推荐

  1. python的windows出现问题_Windows下使用python库 curses遇到错误消息的解决方案

    在Windows系统下执行python应用时,有时会遇到错误信息: ModuleNotFoundError: No module named '_curses'. 然而查看Windows系统里pyth ...

  2. python虚拟环境 windows环境搭建_windows下安装Python虚拟环境virtualenvwrapper-win

    1.安装 执行命令 pip install virtualenv 为了使用virtualenv更方便,可以借助 virtualenvwrapper 执行命令 pip install virtualen ...

  3. python虚拟环境 windows环境搭建_windows 下搭建python虚拟环境(示例代码)

    ################################### windows 下测试环境 C:\Users\wongg\django-cmdb>cd ..\cmdb ##下载get-p ...

  4. 如何在python中安装matplotlib模块_Windows下为Python安装Matplotlib模块

    这玩意反反复复弄了一晚上,这里详细叙述下如何安装,肯定会对大家有所帮助.首先默认大家都装了Python,这个从官网下基本不会有任何难度. (1)Setuptools的安装 为啥先说这个,后面所有whl ...

  5. 尚学python课程---11、linux环境下安装python注意

    尚学python课程---11.linux环境下安装python注意 一.总结 一句话总结: 准备安装依赖包:zlib.openssl:yum install zlib* openssl*:pytho ...

  6. 执行后可以查看python的版本的是_windows肿么查看python opencv 版本

    Python是解释型脚本语言,在执行时,逐句解释执行,不需要进行预编译.但需要有自身的Python解释器. 所以在执行Python代码时,需要指定python解释器. 指定解释器方法: 在文件开头添加 ...

  7. python ctypes实现api测试_Python与C之间的相互调用(Python C API及Python ctypes库)

    2010-01-24 17:58 14237人阅读 评论(11) 我实现 Python C API 此部分可以参考我原来的文章< 准备工作: 闲话少说,看看Python C API.事实上,Py ...

  8. python rest api 测试_如何用Python编写REST API的单元测试

    在过去的几个月中,正在从事一个名为B的项目.它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章.B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些 ...

  9. windows下python依赖包_windows下安装python拓展包

    安装Python集成开发环境IDE 2.IPython:方便今后编译其他扩展库,占用空间92.8M: sudo apt-get install python-dev IPython 为了安装最新版的I ...

最新文章

  1. tensorflow-gpu
  2. 哈尔滨工业大学-数据库系统(基本知识与关系模型3)
  3. 雷林鹏分享:C# 多态性
  4. mac 安装brew及设置国内镜像
  5. android 获取GPS定位,
  6. html table 显示最后一条,漂亮CSS表格(Table),最后一行是汇总行【实例】
  7. Winform中自定义xml配置文件后对节点进行读取与写入(XmlDocument)
  8. 将小程序代码转成uni-app代码
  9. Excel导入SQLserver数据长度过长导入失败
  10. graphpad分组百分比柱状图_Graphpad与SPSS完成分组柱形图教程
  11. Python基础编程(一)
  12. python mq_解析Python实现MQ消息队列以及消息队列的优点
  13. 希捷硬盘固件指令要领
  14. 天池二手车交易价格预测— 赛题理解 + 数据分析
  15. 电脑电话,怎么用电脑打电话
  16. 中国智能传感器投资规划建议及前景方向预测报告2022年版
  17. 紫光收购武汉新芯后长江存储成立 赵伟国任董事长
  18. 大连商务英语培训百家外语国际部怎样提高商务英语阅读技能?
  19. 尼古拉·特斯拉——一个比爱迪生更伟大却被世界遗忘的科学巨人
  20. 分布式监控:zabbix trapper方式监控

热门文章

  1. Robocode教程3——Robo机器剖析
  2. sqlserver备份后无法还原的解决方法
  3. 【信息系统项目管理师】第10章 下篇-项目干系人管理 知识点详细整理
  4. 【中级02】Java Class字节码文件底层逻辑详解
  5. r 语言ylim = c(0 1),今日R--条形图(barplot)
  6. nafxcw.lib与LIBCMT.LIB链接冲突
  7. GStreamer架构设计篇(四)
  8. Android Graphic 架构
  9. 浅谈深度学习中的激活函数
  10. Android4.4 Input 输入上层分析