您的位置:首页 > 编程语言 > C语言/C++

vs2005对vs2003之c++编译

2007-04-01 12:32 381 查看

STL的iterator不能初始化了,否则会报错。

std::vector<std::string>::iterator it=0;
vs2003可以编译,但在2005下就报错:cannot convert from 'int' to 'std::_Vector_iterator

必须写成

std::vector<std::string>::iterator it

这个问题应该在是由于类型检查更严格造成的。估计其他类似的使用方法也可能存在问题

一些字符串相关的操作会警告说是不推荐的方法。

例如,如果使用了strcpy函数的话,就会出如下警告

warning C4996: 'strcpy' was declared deprecated

这是应为微软发明了“安全的C++”概念,意思是说,strcpy是不推荐使用的函数。

在vs2005下,数据类型必须明确定义

const entrysize=0x10c;//在vs2003下是可以编译的

但在vs2005下报错:error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

必须修改成:const int entrysize=0x10c;

for循环条件中定义的变量被归入for循环代码块了

例如

for(DWORD i=0;i<size;i++)
{

buffer[i]=0;

//some other codes

}

buffer[i]=100;//这里会报i没有定义的错误;

在2005中,必须写成这样:

DWORD i=0

for(i=0;i<size;i++)
{

//some codes

}

buffer[i]=100;

某些MFC做了变化

Save(CFile file);

以上代码在2003下可以使用,在vs2005中

编译报错:error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=649641
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: