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
相关文章推荐
- vs2005对vs2003之c++编译
- vs2003和vs2005的编译区别
- 在未安装VS2005的机器上运行VS2005编译的C++程序(转)
- 编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010
- 编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010
- vs2003与vs2005编译区别
- vs2003和vs2005的编译区别
- VS2005手动编译链接C++文件
- 编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010
- 编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010
- VS2005编译的C++项目在没有安装VS2005的机器上无法运行
- 编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010
- vs2003与vs2005异同之------vs2003和vs2005的编译区别(转)
- 关于在VS2005中编译和运行C++
- 使用vs2005的c++在编译智能设备的应用程序出现的bug
- 在未安装VS2005的机器上运行VS2005编译的C++程序
- VS2005 C++ str.Format 编译错误
- 将sqlite3编译成给WINCE使用的DLL,并封装成C++的步骤(使用VS2005)
- 使用C++进行汉语编程(附源代码,VS2005编译通过)
- 编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010