Ответ 1
64-разрядные EXE файлы не могут загружать 32-разрядные библиотеки DLL. (И наоборот: 32-разрядные EXE файлы не могут загружать 64-разрядные библиотеки DLL.) В конце концов, они не могут согласовать размер указателя - что произойдет, если EXE выделит память выше границы 4 ГБ и захочет передать это указатель на 32-битную DLL?
Вам нужно либо:
- Сделайте 64-битную версию вашей DLL;
- Используйте 32-битную версию Python; или
- Укомплектовать DLL в отдельном (32-разрядном) EXE и использовать некоторую форму межпроцессного взаимодействия, чтобы поговорить с ним из вашего 64-битного процесса Python.