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