擅长:python、mysql、java
<p><code>pBaudrate.contents.value</code>将访问指针中的值,但您只需要一个<code>c_uint()</code>并通过引用函数传递它。下面是一个例子。这也是一个通过在失败时抛出异常使函数更“python”的示例。在</p>
<pre><code>import ctypes
from ctypes import wintypes
lib = ctypes.WinDLL(dllnamehere)
lib.VCS_GetProtocolStackSettings.argtypes = [wintypes.HANDLE,wintypes.PDWORD,wintypes.PDWORD,wintypes.PDWORD]
lib.VCS_GetProtocolStackSettings.restype = wintypes.BOOL
def VCS_GetProtocolStackSettings(KeyHandle):
baudrate = wintypes.DWORD()
timeout = wintypes.DWORD()
errorcode = wintypes.DWORD()
result = lib.VCS_GetProtocolStackSettings(KeyHandle,ctypes.byref(baudrate),ctypes.byref(timeout),ctypes.byref(errorcode))
if not result:
raise RuntimeError('error code = {}'.format(errorcode.value))
return baudrate.value,timeout.value
</code></pre>
<p>请注意,<code>WinDLL</code>是否合适。Windows系统DLL使用<code>__stdcall</code>调用约定,但许多DLL使用<code>__cdecl</code>调用约定,而您将使用<code>CDLL</code>。在</p>