Python调用和使用windowsdll’;s

Python调用和使用windowsdll’;s,python,windows,dll,dllimport,Python,Windows,Dll,Dllimport,我要问一个关于python和dll函数的问题,我对此有点失望。问题是-我可以使用python从windows加载dll函数吗?我听说Ctype可以做到这一点,但我找不到好的教程。是否有其他方法使用windows中的dll文件来获得额外功能 我想调用一些dll来处理鼠标事件。我使用了pyautogui,但它对我来说没有那么有用。我想知道python是否适合windows应用程序?我知道它在Windows上运行,但是有一些好的dll函数可以为Windows提供比python原始库更好的功能。这就是我

我要问一个关于python和dll函数的问题,我对此有点失望。问题是-我可以使用python从windows加载dll函数吗?我听说Ctype可以做到这一点,但我找不到好的教程。是否有其他方法使用windows中的dll文件来获得额外功能


我想调用一些dll来处理鼠标事件。我使用了pyautogui,但它对我来说没有那么有用。我想知道python是否适合windows应用程序?我知道它在Windows上运行,但是有一些好的dll函数可以为Windows提供比python原始库更好的功能。这就是我的看法。无论如何,用python处理DLL是否值得?或者我最好学习C语言,因为我喜欢简单的python,现在还不想使用C语言。

是的,你可以。
ctypes
库确实是您所需要的。医生来了。 加载DLL非常简单,但根据参数类型,调用内部函数可能会很麻烦。与Python中的异常处理和一般低开销代码风格相比,处理旧的C风格错误返回代码也很麻烦


99%的情况下,使用适当的现有模块来实现所需的功能或为您包装适当的DLL会更容易、更好。例如,在PyPI中搜索,PyPI是Python扩展模块的中央存储库。这是我的建议。

这不是讨论网站。这里有具体的问题和答案。你应该删除这个问题。这是一个问题,否则听起来不会像问题。我问的是python和dll导入。问题的一部分是观点,否则,如果你不去问,这个问题就不是问题。不,这个问题真的是离题了。请不要告诉我你跳过了阅读解释这一点的文章。请记住,您是新来的(欢迎!),还不清楚此站点的内容。windows api for python使用了什么?Ctypes函数指针允许定义函数原型
restype
argtypes
,以及
errcheck
。如果
errcheck
函数引发异常,那么使用ctypes包装API的代码就不必担心错误返回代码。如果是,则将返回代码转换为异常需要编写代码。因此,一方面您拥有一个“DLL样式到Python样式”的ctypes包装器,另一方面您的实际应用程序使用您的包装器。正如我所提到的,对于大多数库来说,这可能是一个麻烦的过程。通常有少量的
errcheck
函数需要编写(可能只有一个)。OP提到了Windows API。在这种情况下,需要一个
check_zero
函数,因为大多数函数返回
FALSE
NULL
指针/句柄。对于返回
无效\u句柄\u值的少数函数,它可能还需要一个
检查\u无效
函数,而不是
。若要获取异常,请使用
use_last_error=True
加载DLL,并在出错时引发
ctypes.WinError(ctypes.get_last_error())
。如果您无法自动转换函数原型和结构(例如ctypesgen),则繁琐的部分是手动转换函数原型和结构。