vs2005对vs2003之c++编译 zz

作者msn space http://spaces.msn.com/zzqsc/

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.youkuaiyun.com/TrackBack.aspx?PostId=649641

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值