擅长:python、mysql、java
<p>这可能是因为编译器弄乱了函数名。解决这个问题有两种方法:</p>
<ol>
<li>修复代码以告诉编译器不要弄乱名称。(查找添加外部引用)</li>
<li>找到损坏的名称并从python调用它(参见下面的描述)</li>
</ol>
<p>阅读以下内容(来自<a href="http://docs.python.org/2/library/ctypes.html" rel="nofollow">http://docs.python.org/2/library/ctypes.html</a>)</p>
<p>有时,dll导出的函数名不是有效的Python标识符,比如“?”??2@YAPAXI@Z". 在这种情况下,必须使用getattr()检索函数:</p>
<pre><code>>>>
>>> getattr(cdll.msvcrt, "??2@YAPAXI@Z")
<_FuncPtr object at 0x...>
>>>
</code></pre>
<p>在Windows上,有些DLL不是按名称而是按序号导出函数。这些函数可以通过使用序号索引dll对象来访问:</p>
^{pr2}$
<p>如果不确定函数名,请查找链接.exe垃圾箱.exe. 这些可以在visualstudio安装中找到,它们会转储dll中可用的所有函数。你可以对结果进行grep。在</p>