You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ctypes加载kernel32.dll时报WinError 193错误该如何解决?

报错原因
  • 架构不匹配:你当前使用的是64位版本Python(从安装路径C:\Program Files\Python39可判断,32位Python默认安装在C:\Program Files (x86)目录下),而你加载的C:\Windows\SysWOW64\kernel32.dll是32位系统库。64位Windows系统中,System32目录存放64位系统dll,SysWOW64是32位程序兼容层目录,存放32位系统dll,Windows不允许不同架构的进程与dll互相加载,因此触发193错误。
  • 函数归属错误:你调用的timeGetTime不属于kernel32.dll,而是属于Windows多媒体库winmm.dll,即便加载正确架构的kernel32.dll也无法找到该函数。
修复方案
  1. 不要手动指定系统dll的绝对路径,ctypes会自动根据当前Python的架构匹配对应正确路径的系统dll,避免架构匹配错误
  2. 加载正确的dll(winmm.dll)调用timeGetTime函数

修复后的代码如下:

from ctypes import cdll

# 直接传入dll名称,系统会自动适配对应架构的库
winmm_dll = cdll.LoadLibrary("winmm.dll")
print(winmm_dll.timeGetTime())

如果确实需要手动指定路径加载,请按照架构对应选择目录:

  • 64位Python加载64位系统dll:使用C:\Windows\System32下的库
  • 32位Python加载32位系统dll:使用C:\Windows\SysWOW64下的库

内容的提问来源于stack exchange,提问作者Twfyq Bhyry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:18:01