Я пытаюсь получить доступ к DLL, находящейся в папке "c: / Program Files (x86)" на 64-битном процессорном ПК.
Если я использую os.path.exists для проверки существования dll, я получу утвердительный ответ:
>>> print os.path.exists('c:/Program Files (x86)/Some Folder/SomeDll.dll')
True
Но когда я пытаюсь загрузить dll, используя ctypes, я получаю следующую ошибку:
>>> from ctypes import WinDLL
>>> some_dll = WinDLL('c:/Program Files (x86)/Some Folder/SomeDLL.dll')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Python26\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
На 32-битных ПК dll находится в папке "c: / Program Files", и я могу открыть ее без проблем. Я думаю, что, возможно, проблема заключается в наличии круглых скобок в имени папки. Поскольку возвращаемое исключение было WindowsError, похоже, что это ошибка в функции операционной системы, отвечающая за загрузку библиотек.
Итак, вопрос: как мне загрузить dll, находящуюся в папке "c: / Program Files (x86)"? Я не могу скопировать dll в другой пункт назначения, он должен находиться в исходном пути ...
Спасибо!