CDLL和WinDLL的区别

本文介绍了Python中调用C语言或C++动态链接库的CDLL和WinDLL的区别。CDLL主要用于C语言调用方式,WinDLL则用于WIN32调用方式,返回值为HRESULT。关键区别在于调用约定,CDLL采用调用者清除栈,而WinDLL和ctypes.windll使用被调用者清除。详细内容包括如何引入库、加载dll及不同调用约定的注意事项。
摘要由CSDN通过智能技术生成

CDLL和WinDLL的区别

区别

Python要调用C语言或者C++写的动态连接库,要用到ctypes
ctypes库其实背后做了很多,它提供了三个easy载入动态连接库的对象:cdllwindlloledll
通过访问这三个对象的属性,就能够调用动态连接库的函数了
其中

  • cdll主要用来载入C语言调用方式(cdecl
  • windll主要用来载入WIN32调用方式(stdcall
  • oledll使用WIN32调用方式(stdcall)且返回值是Windows里返回的HRESULT值
    而调用时,最需要注意的去别在于
    cdll是使用调用者清除的栈的方式。而windlloledll是使用被调用者清除的方式

使用

引入ctypes

    from ctypes import *

加载dll

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值