Ошибка при доступе к одной функции в pywin32 или win32com из python 3.3.5

Я создал оболочку win32com для DLL и пытаюсь получить к ней доступ. Это работает за исключением одной функции под названием ReadPipeBytes. Он работает на двух других моих машинах, но я использую другую версию Python. Это ошибка: объект не имеет атрибута "ReadPipeBytes". Я скопировал ту же самую dll на другую машину (это драйвер, у меня такое же оборудование, к которому я пытаюсь получить доступ.) Я сделал сравнение файлов оболочки, и они почти идентичны, за исключением версий python, с которыми они были сгенерированы. и сгенерированная версия 3.3.5 не помещает u'FunctionName ', как версия 2.7. Если я копирую файл оболочки на компьютер, который не работает, я получаю ту же ошибку (и / или файл dict).

1) Почему версия python будет иметь значение при чтении этой конкретной функции, когда другая функция работает нормально (это не оболочка?

2) Как Python может не использовать функцию readpipebytes, когда работают другие функции и когда я использую те же файлы, что и на других моих машинах?

1 ответ

Решение

Когда вы используете com, язык, к которому вы обращаетесь, нуждается в той же "битности", что и com .dll или элемент управления. Так что если у вас есть 32-битный элемент управления или Comll, у вас должен быть 32-битный win32com.

Другие вопросы по тегам