近日由于工作需要不得不把在vc6.0上写的代码转换到vs2008上。最开始就是直接复制粘贴,本以为坑定不会有什么问题,结果一编译运行就会出现下面的错误:
error C3861: “min”: 找不到标识符
error C2668: “pow”: 对重载函数的调用不明确
详细说明:
第一个错误就是我用到了min这个函数,就是求最小值的,如min(100, lines1->total)等类似的用法;
错误原因,在vc6.0上的头文件都是#include <stdio.h>形式的。
解决办法:只要在vs2008上加入
#include <iostream>
using namespace std;
这个错误就可以解决了,这个错误解决纯属偶然,是我在想ARM上移植时不经意解决的。
第二个错误语音很明了了,就是对重载函数的调用不明确。
错误原因,vs平台下数学函数的参数检查相当的严格。
int型就是int型,float就是float型,如果是float型,写个2,3,4,5之类的就会报上面的错误。
解决办法:就是如果用到double或者float型要写成2.0,3.0类似的形式。