假如原先是这样的:if (sqrt((x0-tx)*(x0-tx)+(y0-ty)*(y0-ty))
error C2668: “sqrt”: 对重载函数的调用不明确。
1> d:\vs2010\vc\include\math.h(581): 可能是“long double sqrt(long double)”
1> d:\vs2010\vc\include\math.h(533): 或 “float sqrt(float)”
1> d:\vs2010\vc\include\math.h(128): 或 “double sqrt(double)”
1> 试图匹配参数列表“(int)”时
原因是程序从VC6.0转到VS.net更高版本上运行,因为VS.net要求的更精确而造成了报错。
修改:在math.h中"sqrt"有三种类型 :long double sqrt(long double ),float sqrt(float),
double sqrt(double),所以任选一种对你的应用精度较好的参数和返回值类型,如float sqrt(float),将上述
if (sqrt((x0-tx)*(x0-tx)+(y0-ty)*(y0-ty))