Ошибка операционной системы: [ошибка 193] %1 не является допустимым приложением Win32 при использовании типов ctypes

#python #dll #ctypes #dllimport

Вопрос:

я пытаюсь использовать библиотеку dll kernal32 и использовать функции из нее. при попытке сделать это я получил ошибку.

 Traceback (most recent call last):
  File "C:UsersTawfiqDesktop2D renderwin32.py", line 2, in <module>
    mydll = cdll.LoadLibrary(r"C:WindowsSysWOW64kernel32.dll")
  File "C:Program FilesPython39libctypes__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "C:Program FilesPython39libctypes__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application
 

это код, который я выполняю:

 from ctypes import*
mydll = cdll.LoadLibrary(r"C:WindowsSysWOW64kernel32.dll")
print(mydll.timeGetTime())
 

Ответ №1:

c:windowssyswow64 содержит 32-разрядные библиотеки DLL. Ваш путь к Python c:Program Files -это 64-разрядное место установки Python. Вы не можете смешивать.

Не нужно жестко кодировать путь. Просто используйте mydll = WinDLL('kernel32') , и Windows выполнит поиск правильного стандартного местоположения для запущенного Python (32 — или 64-разрядного).

Комментарии:

1. да, я пробовал, и это работает