在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件的功能及应用领域,减少重复编写代码、重复造轮子的工作量,这也充分体现了Python语言作为一种胶水语言所特有的优势。
函数printStudentInfo的具体C语言实现代码如下:在Python中的调用方式如下:
从上面的代码中可以看出,对于结构体参数的传递,在Python中需要使用Structure作为基类定义一个与之对应的结构体类Student,在类的_fields中定义结构体中每个成员变量的名称和数据类型。然后定义结构体类的一个实例对象student,对每个成员变量逐个赋值,以byref传址的方式进行调用就可以了。
在Python中的调用方式如下:
在上面的代码中,第43行定义了一个指向Student结构体的指针变量。第48行调用该函数并打印返回值,第49-50行,分别打印两个学生的具体信息。完整的测试代码完整的测试代码如下图所示:
手把手以实例教你在Python中调用DLL函数:传递结构体参数
领取专属 10元无门槛券
私享最新 技术干货