CDLL和WinDLL的区别
区别
Python要调用C语言或者C++写的动态连接库,要用到ctypes库
而ctypes库其实背后做了很多,它提供了三个easy载入动态连接库的对象:cdll、windll和oledll
通过访问这三个对象的属性,就能够调用动态连接库的函数了
其中
cdll主要用来载入C语言调用方式(cdecl)windll主要用来载入WIN32调用方式(stdcall)oledll使用WIN32调用方式(stdcall)且返回值是Windows里返回的HRESULT值
而调用时,最需要注意的去别在于
cdll是使用调用者清除的栈的方式。而windll和oledll是使用被调用者清除的方式
使用
引入ctypes库
from ctypes import *

本文介绍了Python中调用C语言或C++动态链接库的CDLL和WinDLL的区别。CDLL主要用于C语言调用方式,WinDLL则用于WIN32调用方式,返回值为HRESULT。关键区别在于调用约定,CDLL采用调用者清除栈,而WinDLL和ctypes.windll使用被调用者清除。详细内容包括如何引入库、加载dll及不同调用约定的注意事项。
最低0.47元/天 解锁文章

8437

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



