python通过ctypes调用C++ DLL过程中返回值的指定和结构体数组的使用

在做自动化测试的过程中,我需要使用python调用C++的SDK,完成接口测试的工作。由于团队只提供了C++的SDK源码,所以我需要做下面几件事:

  1. 封装C++的接口,进行接口的导出
  2. 打包为DLL,动态链接库
  3. 使用ctypes库,调用dll,完成测试

网上关于python通过ctypes调用C++动态链接库的教程非常多,我就不再写了,这里就写一下我在使用过程中遇到的两个问题:

  1. 接口返回为应字符串,C++代码中声明为char *,如何在python中获取字符串的返回值?
  2. 参数中有结构体,返回值是结构体,返回值或参数中有结构体数组的时候在python中如何传值和解析返回值?

C++接口导出

在看问题之前,我们顺便带一下C++代码如何封装。作为测试人员,我拿到的是C++的源码,要使用python调用它,首先我需要先导出我要测试的接口。为了让导出接口的代码不与SDK源代码混在一起,我们需要在项目中新建一个export.cpp专门用于导出,这样便于在git上与开发人员一起协同工作,互不干扰。
在这里插入图片描述
这个文件的内容,就是导出接口,这里直接看个例子,不做过多解释了

extern "C" __declsp
  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值