extern "C" _declspec(dllexport) double Ex21cSquareRoot(double d)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
TRACE("Entering Ex21cSquareRoot\n");
if(d >= 0.0)
return sqrt(d);
return 0.0;
}
我在DLL中写了一个小程序,实现数的开方,我如果让d = 4,结果没有错,可是我如果让d = -4;程序就跳出那个“终止、重试、跳过”的窗口,到底是什么地方出了问题呢?哪位大哥能不能帮个忙啊,谢谢
dll内部没有出错。不知你外部是怎么调用的,采用的是什么语言?
负数不能进行一般意义上的开方呀
数学上的负数开方会得到复数
但是sqrt函数不能进行这样的工作。
所以必然会出错
对不起,没看清程序
已经做了判断的话,应该不会出错的
做个记号,我觉得应该没问题啊