我正在使用ctypes和C/C++ DLLs进行一些小的实验。我有一个非常简单的数学dll。
double Divide(double a, double b)
{
if (b == 0)
{
throw new invalid_argument("b cannot be zero!");
}
return a / b;
}
到目前为止,它运行良好。唯一的问题是,我在Python中遇到了WindowsError异常,无法检索文本 b不能为零。是否需要抛出某些特殊的异常类型?还是必须修改Python代码? Python代码:
from ctypes import *
mathdll=cdll.MathFuncsDll
divide = mathdll.Divide
divide.restype = c_double
divide.argtypes = [c_double, c_double]
try:
print divide (10,0)
except WindowsError:
print "lalal"
except:
print "dada"