python編譯ctypes報錯
『壹』 怎麼解決python導入dll報錯windowserror:126, 不是路徑的問題
解決辦法:
載入的時候要根據你將要調用的函數是符合什麼調用約定的。 windll和cdll分別是WinDLL類和CDll類的對象。
stdcall調用約定:
Objdll = ctypes.windll.LoadLibrary("dllpath")
Objdll = ctypes.WinDLL("dllpath")
cdecl調用約定:
Objdll = ctypes.cdll.LoadLibrary("dllpath")
Objdll = ctypes.CDLL("dllpath")
調用後就可以使用dll中的函數
print Objdll.Add(1, 102)
Objdll = ctypes.cdll.LoadLibrary("D:\dll\PosterDetector.dll")
(1)python編譯ctypes報錯擴展閱讀:
python導入dll報錯展示:
使用python調用C++的dll報錯,錯誤如下:
Traceback (most recent call last):File "E:/work/proc/video_web/application.py", line 157, in <mole>
Objdll = ctypes.cdll.LoadLibrary(os.path.join(APP_ROOT,"dll","PosterDetector.dll"))
File "d:python27Libctypes\__init__.py", line 444, in LoadLibrary
return self._dlltype(name)
File "d:python27Libctypes\__init__.py", line 366, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126]
『貳』 python用ctypes操作剪切板遇到問題!!
這邊執行沒有問題,版本如下
Python3.5.0(v3.5.0:374f501f4567,Sep132015,02:27:37)[MSCv.190064bit(AMD64)]onwin32
代碼如下
importctypes
defget():
'''從剪切板中獲得字元串'''
h=ctypes.WinDLL('user32.dll')
h.OpenClipboard(0)
aa=h.GetClipboardData(13)
ss=ctypes.c_wchar_p(aa)
h.CloseClipboard()
returnss.value
defset(mystr):
'''把字元串放到剪切板中,成功返回1,失敗返回0'''
u=ctypes.WinDLL('user32.dll')
k=ctypes.WinDLL('kernel32.dll')
s=mystr.encode('utf-16')
s=s[2:]+b'