Могу ли я использовать 32-битную dll или exe в 64-битном python? - программирование
Подтвердить что ты не робот

Могу ли я использовать 32-битную dll или exe в 64-битном python?

Когда я использую CDLL для вызова 32-разрядной dll в 32-битном python, он работает хорошо. Но, к сожалению, в моем 64-битном win7 os устанавливается только 64-битный python, когда он вызывает его: это не эффективное приложение win32!

Можно ли использовать 32-битную dll или exe в 64-битном python? Или мне нужно установить 32-битный python?

4b9b3361

Ответ 1

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

Вам нужно либо:

  • Сделайте 64-битную версию вашей DLL;
  • Используйте 32-битную версию Python; или
  • Укомплектовать DLL в отдельном (32-разрядном) EXE и использовать некоторую форму межпроцессного взаимодействия, чтобы поговорить с ним из вашего 64-битного процесса Python.