我目前正在开发一个模拟工具,它需要一个来自fortrandll的PDE解算器。为了弄清楚如何从python调用dll,我从同一个dll中使用了一个更简单的函数,但无法使其工作。在
系统规格:
Windows 7专业版(64位)
斯派德3.2.8
Python 3.6.5(32位)
我现在使用cffi调用fortran函数,但它也不起作用。在import cffi as cf
ffi=cf.FFI()
lib=ffi.dlopen("C:\Windows\SysWOW64\DLL20DDS")
ffi.cdef("""
double S01BAF(double X, int IFAIL);
""")
print (lib) #This works
print (lib.S01BAF) #This works
x = 1.
ifail = 0
print (lib.S01BAF(x,ifail)) #This doesn't work
这是我用cffi调用函数的代码。我正在加载的dll包含我要调用的函数S01BAF。
我收到的错误消息是:
^{pr2}$
我不知道那是什么意思。在
为了检查函数本身是否正常工作,我尝试从另一种语言(VBA)调用它,它工作得很好。在Option Base 1
Option Explicit
Private Declare Function S01BAF Lib "DLL20DDS.dll" (x As Double, iFail As Long) As D