1、无参
动态链接库:
void SayHello()
{
MessageBox(NULL,
TEXT("你好你好~~~"),
TEXT("你好"),
MB_OK);
}
加载dll,调用函数
from ctypes import *
lib = CDLL ("e:\\Dll1.dll")
lib.SayHello()
2、有参
from ctypes import *
lib = CDLL ("e:\\Dll1.dll")
lib.StrAppend('你好')
ret = lib.IntAdd(3,4)
print(ret)
IntAdd 和 StrAppend, 我们直接使用了Python对象作为参数传入。
实际上,底层的ctypes库调用c语言库,不能直接传递python对象的,需要转化为c语言接口对应的类型。
它会根据我们使用的python对象类型,猜测应该转化为什么类型的数据。
Python数据对象和C语言的数据对象的对应关系见 ctypes — A foreign function library for Python — Python 3.10.4 documentation

本文介绍了如何使用Python调用DLL,包括无参、有参函数的调用,以及如何指定参数和返回值类型。重点强调了Python对象与C语言数据类型的转换,特别是w_char和char的区别,并提及了Python 3.5开始引入的类型暗示功能。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



