Khi tôi nhìn thấy những thứ như thế này - nó thường là bởi vì có những dấu xồ nguợc trong đường dẫn được chuyển đổi.
Ví dụ: phần sau sẽ không thành công - vì \ t trong chuỗi được chuyển thành ký tự TAB.
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:\tools\depends\depends.dll")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\tools\python271\lib\ctypes\__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "c:\tools\python271\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
Có 3 giải pháp (nếu đó là vấn đề)
a) Sử dụng dấu gạch chéo kép ...
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:\\tools\\depends\\depends.dll")
b) sử dụng dấu gạch chéo
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:/tools/depends/depends.dll")
c) sử dụng chuỗi RAW (mở đầu chuỗi bằng r
>>> import ctypes
>>> ctypes.windll.LoadLibrary(r"c:\tools\depends\depends.dll")
Trong khi tác phẩm thứ ba này hoạt động - thỉnh thoảng tôi có ấn tượng rằng nó không được coi là 'chính xác' bởi vì chuỗi RAW có nghĩa là cho cụm từ thông dụng. Tôi đã sử dụng nó cho các đường dẫn trên Windows trong Python trong nhiều năm mà không có vấn đề :))
Bạn có thể xây dựng trên DLL mà bạn đang cố gắng nhập và những gì mà DLL không? Nó có thể tự nó đang cố gắng để tải một DLL mà nó không thể tìm thấy. – santosc
Câu trả lời cho [câu hỏi này] (http://stackoverflow.com/questions/2334627/error-loading-dll-in-path-with-parenthesis-using-ctypes-python) đã giải quyết nó cho tôi - trùng lặp? – Junuxx