我有一个DLL来计算二次方程的根。它有4层的API,其中3个是用于设置二次方程AX^2 + BX + C的系数,一个得到的根源,即:Python脚本通过导入它来测试DLL的功能
void setA(const double a);
void setB(const double b);
void setC(const double C);
int getSolution(double *x, double *y);
我的Python脚本下面使用ctypes的加载和测试DLL。它不工作。我得到奇怪的输出为x
和y
。的getSolution
结果应该是0,但我正在逐渐1,这意味着系数A
为0
from ctypes import *
# give location of dll
mydll = cdll.LoadLibrary("C:\\quadratic.dll")
mydll.setA(2)
mydll.setB(0)
mydll.setC(-4)
x = c_float(0)
y = c_float(0)
result = mydll.getSolution(byref(x), byref(y))
print(result)
print(x)
print(y)
我得到以下输出:
C:\>"C:\WINDOWS\py.exe" test.py
1
c_float(0.0)
c_float(0.0)
请建议我要去的地方错了,也替代到这个测试DLL的方法。
Windows目录应该在你的PATH,加上.py文件扩展名应该与py.exe相关。所以你应该能够直接执行'test.py'。假设你已经安装了其他版本,你可以在第一行添加一个shebang,比如'#!python3',以确保它在3.x中运行。 – eryksun