python中可使用ctypes模块调用dll文件中的库函数。
例如一个dll文件“MyDll.dll”,其函数约定的调用方式为C调用(cdecl)方式,则Python中加载该dll文件的代码如下:
若DLL函数的调用约定是标准调用约定(stdcall)方式,则DLL文件的加载代码则改为:
dll = WinDLL(‘MyDll.dll’)
下面给出几种不同类型的参数传递情况示例。
1、函数参数为数值情况
这是最简单的情况,设C语言函数声明如下:
Python中调用方式为:
2、函数参数为指针情况
设C语言函数实现代码如下:
Python中调用方式为:
也可以为:
3、函数参数为字符串情况
设C语言函数实现代码如下,其功能是对于输入pStr1赋值为“StrIn”,对于输出返回一个指向字符串常量“strOut”的指针:
Python中调用方式为:
这儿只列举了3种常见的参数传递情况,当然还包括其它的,诸如传递结构体、数值数组等类型的情况,详细情况可参考以前的文章。