2
我在Windows 7 64位上运行Python 2.7 32位(Anaconda)。Ctypes:无法导入windll
我想用ctypes的做Win32 API调用,我有一个很奇怪的问题:我能import ctypes
,但不是import ctypes.windll
,我得到以下错误:
ImportError: No module named windll
我已检索网页所以我没有发现类似于我的问题的东西(它可能是关于不可能导入ctypes,或者是您尝试导入的DLL中的错误)。
有没有人知道我做错了什么?
记住,使用'ctypes.windll'让你在任何模块出现这种情况的一个函数加载同一个DLL,并设置原型('restype','argtypes','errcheck')怜悯你也在呼唤。函数指针实例缓存在'windll'缓存的'WinDLL'实例上,因此与其他用户定义的类型和errcheck函数相比,您可能会发生冲突。从长远来看,最好是调用'ctypes.WinDLL'来获取特定于您的模块或脚本的实例。 – eryksun
@eryksun非常感谢您的提示! – gaborous
为了反弹eryksun的评论:你不能直接调用'ctypes.WinDLL.kernel32',你需要做以下事情:'from ctypes import LibraryLoader; windll = LibraryLoader(ctypes.WinDLL)',那么你可以调用'windll.kernel32',而不需要提到eryksun提到的重定义问题。 – gaborous