CDLL和WinDLL的区别

区别

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

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

使用

引入ctypes

1
from ctypes import *

加载dll

stdcall调用约定

1
Objdll = ctypes.WinDLL("dllpath") 

cdecl调用约定

1
Objdll = ctypes.CDLL("dllpath")

如果有更复杂的使用需求,访问这个

https://www.cnblogs.com/baihuitestsoftware/articles/5345089.html