У меня есть 64-битная dll "tdjson.dll" (telegram tdlib), которую я хочу использовать в своем проекте на python.Проблема в том, что python не может импортировать DLL, когда я запускаю свой код из CMD, PowerShell, Cygwin или любого другого терминала, кроме Git Bash.Единственный способ запустить мой код - это запустить его из терминала Git Bash, поставляемого с Git для Windows.
Вот журналы из Mingw64 и CMD:
usrname@pcname MINGW64 /e/projects/tele (master)
$ where python
C:\Users\usrname\AppData\Local\Programs\Python\Python37\python.exe
usrname@pcname MINGW64 /e/projects/tele (master)
$ python -i
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from ctypes import *
>>> CDLL("tdjson.dll")
<CDLL 'tdjson.dll', handle 7ffd19a70000 at 0x2939d19b0b8>
>>>
E:\projects\tele>where python
C:\Users\usrname\AppData\Local\Programs\Python\Python37\python.exe
E:\projects\tele>python -i
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from ctypes import *
>>> CDLL("tdjson.dll")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\usrname\AppData\Local\Programs\Python\Python37\lib\ctypes\__init__.py", line 356, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application
>>>