您可能混淆了调用约定。我猜你有一个C函数声明这样的事情:
double haloshg_add(double d1, double s2){ return d1+d2;}默认情况下,这将使用C调用约定。最简单的方法是在ctypes代码中更改调用约定:
nDLL = ctypes.CDLL('test.dll')如果要将C代码中的调用约定更改为
stdcall(匹配
ctypes.WinDLL),则可以执行以下操作:
double __stdcall haloshg_add(double d1, double s2)
无论您做什么,都只需进行以下更改之一。如果您同时执行两个操作,则将导致反向失败!
如果是我,我只是将Python代码更改为使用C调用约定(use
CDLL)。这种变化影响最小。



