擅长:python、mysql、java
<p>您的代码没有调用<code>getversion</code>。您的代码创建一个默认的<code>ulong()</code>(初始化为零)并打印它。你知道吗</p>
<pre><code>version=c_ulong()
print("Version=",version.value)
</code></pre>
<p>以下是工作代码:</p>
<pre><code>from ctypes import *
mydll = CDLL('demo.dll')
mydll.getversion.argtypes = [POINTER(c_ulong)]
mydll.getversion.restype = None
version=c_ulong()
mydll.getversion(byref(version)) # call function with address of version
print("Version=",version.value)
</code></pre>
<p>这是我测试的DLL(你的原样不会编译…没有<code>ulong</code>的定义),是用Microsoft Visual Studio编译的。你知道吗</p>
<pre><code>__declspec(dllexport) void getversion(unsigned long* version)
{
*version = 1;
}
</code></pre>