请问从VC6.0 换成 VS2008 后该注意哪些问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:39:01
我以前一直用的VC6.0,现在想试试VS2008,但用了一天发现很不适应,很多在6.0上的代码到2008上就无法通过编译,代码更加严格了,想问下VS2008对比6.0有哪些地方改变了,哪些地方需要注意的(主要是代码上的,比如AfxMessageBox("abc")无法通过编译,需要加_T( )),或者可有这方面的资料??
谢谢~~~

楼主多虑了 ,6.0下写的代码都能在VS2008下运行,顶多也就是稍加修改 ,并不是说两者有多大不同 ,而是 VS2008 较 VC++6.0 更符合标准了而已 ,你查查新标准自然也就会知道有哪些不同 。6.0 有很多弊端 ,比如 for 循环问题 ,模板问题 以及 运算符重载等问题 , VS2008 较 6.0 都改进不少 ,只要语法完全符合标准也就不必担心有什么不同 。VS2008 是较 6.0 严格了一些 ,以前在 6.0 内编译完好的代码到 VS2008 下就会出现警告甚至错误 ,不过这都是为了程序的健壮性 ,帮助你发现程序的潜在问题 。
不必刻意追求这方面的资料去看 ,主要就是因为刚开始用还不太习惯 ,用几天就好了 ,其中的区别也能慢慢体会到 。

就是代码更规范了,比如const i;可以在vc6上通过却不能在vc2008上通过,_T()是个宏定义,他确定字符串是单字节还是双字节的.这个过一段时间就适应了,我当初也是这样过来的,资料还真没找过专门说区别的.

LZ可以HI我,加我在线联系,在使用过程中有什么问题直接问我.

其实没有什么好比较的,vs2008比vc6版本高,仅此而已,vs2008是兼容vc6的。
至于你说的要加_T()之类的问题,是因为vs2008默认是unicode编码,而vc6是asni编码,所以出现这种问题,只要在vs2008中把编码方式设置为宽字符集就可以了。
多用用就习惯了,我以前用vc6刚换成vs2005的时候也不太适应,但是时间长了还是觉得vs2005好用的,事物总是在发展的,微软不可能用一个不好的东西去替代以前好的东西。

VC6 默认是 多字节编码
VC2008 默认是 UNICODE 编码。
所以 AfxMessageBox("abc") 不能通过。
要使用 AfxMessageBox(_T("abc"));

其他的不会有什么问题的,系统编译时候提示什么错误,你改什么错误就行了。一般就是宏定义的问题。

是向上兼容的

前面需要加_T(),是因为字符集的不同而已,_T是Unicode字符集,不用_T是宽字符