python ctypes库2_指定参数类型和返回类型详解

yipeiwu_com6年前Python基础

python函数的参数类型和返回类型默认为int。

如果需要传递一个float值给dll,那么需要指定参数的类型。

如果需要返回一个flaot值到python中,那么需要指定返回数据的类型。

数据类型参考python文档:

https://docs.python.org/3.6/library/ctypes.html

import ctypes
path = r'E:\01_Lab\VisualStudioLab\cpp_dll\cpp_dll\Debug\cpp_dll.dll'
dll = ctypes.WinDLL(path)
 
dll.add_float.argtypes = [ctypes.c_float,ctypes.c_float]
dll.add_float.restype = ctypes.c_float
 
data_float = dll.add_float(7,10) # (ctypes.c_float(7.0),ctypes.c_float(10.0))

c++中函数如下:

DLLEXPORT float __stdcall add_float(float a,float b)
{
 float sum = a + b;
 return sum;
}

以上这篇python ctypes库2_指定参数类型和返回类型详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python进度条实时显示处理进度的示例代码

前言 在大多数时候,我们的程序会一直进行循环处理。这时候,我们非常希望能够知道程序的处理进度,由此来决定接下来该做些什么。接下来告诉大家如何简单又漂亮的实现这一功能。 如何使用这个类 使...

pytorch多进程加速及代码优化方法

目标:优化代码,利用多进程,进行近实时预处理、网络预测及后处理: 本人尝试了pytorch的multiprocessing,进行多进程同步处理以上任务。 from torch.mul...

Python中编写ORM框架的入门指引

有了db模块,操作数据库直接写SQL就很方便。但是,我们还缺少ORM。如果有了ORM,就可以用类似这样的语句获取User对象: user = User.get('123') 而...

python3的数据类型及数据类型转换实例详解

python3的数据类型及数据类型转换实例详解

之前介绍过python开发工具Jupyter的使用,今天继续讲解python的数据类型,python中有整型、浮点型、字符串、布尔类型,我们重点介绍布尔类型的运算,以及不同数据类型之间的...

python 使用值来排序一个字典的方法

下面先看下python 使用值排序字典的方法 In [8]: a={'x':11,'y':22,'c':4} In [9]: import operator In [10]: sor...