擅长:python、mysql、java
<p>您应该显示.argtypes和.restype尝试,但请尝试一下:</p>
<pre><code>from ctypes import wintypes as w
class FTRSCAN_IMAGE_SIZE(ctypes.Structure):
_fields_ = [('nWidth', ctypes.c_int),
('nHeight', ctypes.c_int),
('nImageSize', ctypes.c_int)]
FTRHANDLE = ctypes.c_void_p
lib = ctypes.WinDLL('ftrScanAPI.dll')
lib.ftrScanOpenDevice.argtypes = None
lib.ftrScanOpenDevice.restype = FTRHANDLE
lib.ftrScanGetImageSize.argtypes = FTRHANDLE,ctypes.POINTER(FTRSCAN_IMAGE_SIZE)
lib.ftrScanGetImageSize.restype = w.BOOL
</code></pre>
<p>检查<code>WinDLL</code>与<code>CDLL</code>的用法。如果Python的<em>Python</em>是64位的,这并不重要,但是对于32位Python来说,它会有所不同。如果函数使用C调用约定(u cdecl),则使用<code>CDLL</code>;如果函数使用u stdcall调用约定,则使用<code>WinDLL</code>。如果头文件不清除,则默认值通常为u cdecl。<strong>编辑:</strong>在另一个答案的API链接中,应该使用<code>__stdcall</code>和{<cd1>}。在</p>