VS2010与VC++编译器的区别:
1.VS2010并不是针对C++的,C++只是它的一小部分,它更加关注.net平台程序开发(主要是C#、VB,C++/CLI(C++在.net下的语言)),而VC++6.0是专注与C++开发,或者说VC6只能开发C++程序,在VC6.0时期还没有.net
2.vc6对最新的C++的标准完全不支持,STL的支持也有缺陷,更加不支持可变参数宏
  vc2010能够支持部分C++的特性,完全支持STL,同时支持可变参数宏
3.vs2010添加很多微软.NET的新特性,支持更多种类的资源文件,帮助文档也非常丰富,相较于vc6更加适合开发软件产品。
vc6里面对COM的使用和后面的vc版本都有一些区别,这些可能导致以后在工作中遇到麻烦。另外,vc6对win7及其之后的版本支持并不好,很容易发生不兼容的情况。
4.默认编码不同,VC6默认是ansi,文件小速度慢。VS2010默认是unicode,文件大速度快
后者错误好找不用编译就出来了,bug少,更先进更强大,vc6有bug,但是编译快,文件相对较小
5.vs2010开发出来的程序可以自动根据特定的CPU翻译成高效的目标代码,VC6开发出来的程序,要想换成其它的CPU必须要重新开发
6.VC6的界面老旧,操作复杂,不完全符合C++的安全标准,但是是底层语言,与操作系统良好结合,使用广泛;VS2010可视化界面,安全可靠,支持C++标准,部署简
7.VS2010自带了winsock2库(第2版的库),每次都不用加Ws2_32.lib
MSDN online
移植的问题:
1.高级的编译器,在同一个基础下开发后,由于向前兼容,可以打开原始编译的工作平台
2.环境变量与宏设置
_WIN32_WINNT 与_WIN32_IE 设置冲突
设定的windows平台版本,与安装配置的ADK不相符合
#if _MSC_VER <= 1200 // MFC 6.0 or earlier
3.MFC出现的时候STL还没有成为C++的标准,所以MFC使用一套自己的模版库,比如CArray、CList、CMap等等,这些类型声明都在afximpl.h文件中。
4.为了显著增加CRT库的安全性,许多CRT函数都有了一个更安全的新版本,新版本和旧版本的区别就是新版本函数名多了一个_s后缀。鼓励使用安全切最新的版本,但是参数等变化很大,调整需要很多时间。
  可以使用#pragma warning( disable : 4996 )预处理指令解除警告
5.新旧版本的MFC以及界面控件?中对ON_MESSAGE消息映射宏定义不同
旧版:
#define ON_MESSAGE(message, memberFxn) / 
{ message, 0, 0, 0, AfxSig_lwl, / 
(AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, 
LPARAM))&memberFxn }, 
新版:
#define ON_MESSAGE(message, memberFxn) / 
{ message, 0, 0, 0, AfxSig_lwl, / 
(AFX_PMSG)(AFX_PMSGW) / 
(static_cast< LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM) > / 
(memberFxn)) },
新的
ON_MESSAGE宏使用C++的?static_cast?操作符代替了C类型的强制转换。
用户没有按照ON_MESSAGE宏的约定声明来定义消息响应函数,就会造成错误
旧版:
#define?ON_WM_NCHITTEST()?/?
{?WM_NCHITTEST,?0,?0,?0,?AfxSig_wp,?/?
(AFX_PMSG)(AFX_PMSGW)(UINT(AFX_MSG_CALL?CWnd::*)(CPoint))&OnNcHitTest?},?
新版:
#define ON_WM_NCHITTEST() / 
{ WM_NCHITTEST, 0, 0, 0, AfxSig_l_p, / 
(AFX_PMSG)(AFX_PMSGW) / 
(static_cast< LRESULT (AFX_MSG_CALL CWnd::*)(CPoint) > (&ThisClass :: 
OnNcHitTest)) },
返回值类型由UINT改成了LRESULT,再加上static_cast的严格检查而出错
6.新的C++编译器不再支持默认类型的变量定义
7.for 语句的变量作用域问题
8.strchr(_tcschr)、strpbrk(_tcspbrk ??)、strrchr(_tcsrchr)和strstr(_tcsstr)这四个函数在VC6的CRT库中定义的返回值都是char *(TCHAR *),所以以前的代码通常是这样使用的:TCHAR *cp = _tcschr( pszPath, _T('//') ); //使用*cp,可以通过cp指针修改pszPath的内容这其实是一个“漏洞”,因为如果pszPath是const char(TCHAR) *字符串,那么就表示它不希望修改字符串的内容,但是调用strchr(_tcschr函数后就可以通过cp指针修改其内容了,这岂不荒谬?所有在新版本的CRT库中,这几个函数的返回值都改成const
 char *。
9.wchar_t *类型与USHORT *的转换错误

Vs2010与VC的区别相关推荐

  1. Vb 与 Vc 的区别

    一:简单的对比 VB是由Basic语言演化而来的VisualBasic,意思是可视化Basic,而VC是由C++语言演化而来的VisualC++,意思是可视化C++,VB功能没有VC强大,但是很容易掌 ...

  2. VS 和VC 的区别

    VS是Visual Studio,它是微软提供的一个工具集,由各种各样的工具组成.VS可以支持C/C++.VB.JAVA.C#编程,不过一次只能支持一种编程方式.在VS安装完成,第一次运行的时候会让你 ...

  3. (转)gcc编译与vc编译器区别

    gcc编译器的功能强大,支持的语法也非常灵活,给我们在编程时带来了非常大的方便,也给移植代码时带来了一定的难度. 1 声明64位数据类型: gcc: long long vc: __int64 2 s ...

  4. QQ自动登录/QQ登录器/程序源代码/VS2010/VS2012/VC/MFC

    学习豪迪,研究了一下QQ自动登录怎么写. 以前QQ登录的介面先用SPY++来找到QQ登陆框,然后再把密码copy进去,就可以了. 现在的QQ登录介面这招不行,用SPY++是找不到任何ID的. 怎办呢? ...

  5. VS里的VC++属性和C/C++属性有什么区别?

    前面已经说过了,VC++ Directories是一个Windows环境变量,C/C++是命令行参数,这是本质区别:但是相同的项,也就是VC++ Directories中的include direct ...

  6. VC++、MFC、COM和ATL的区别

    From: http://hi.baidu.com/huqingshuye/blog/item/c55bd12ca5fa1b5b4ec2263f.html 一.什么是MFC 微软基础类(Microso ...

  7. 什么是PE? 什么是VC?

    风险投资,简称VC,私募股权投资,简称PE,或许有些人对它们的概念和区别不是很清楚,下面,就给大家详细的做下解释,首先,我们先来了解一下VC和PE的概念. 天下金融网 风险投资(Venture Cap ...

  8. VC,PE和Hedge Fund

    最近,经常听到说某某VC,某某PE等等,那这些机构之间到底有什么区别呢? 主要可以从进入阶段,与被投资企业关系,涉及金额,退出机制等方面来比较. 首先,来看看定义: VC,Venture Capita ...

  9. 技术VC公司都是干什么的?一文带你读懂技术VC

    技术VC公司是干什么的?相信许多不熟悉这个行业的人对技术VC都不太清楚.技术VC是近年来发展起来的一种新兴创业模式,技术VC公司是通过技术入股项目,和创业者共同发展,在项目成熟之后才可以折现,实现利益 ...

最新文章

  1. 天体运行轨迹_海王星轨道外发现139个新天体, 能揭开太阳系第九颗行星奥秘?...
  2. [Groovy] Groovy API
  3. python面向对象(part2)--封装
  4. Nginx -静态资源Web服务
  5. shell变量$$,$!,$?,$*,$0,$1,$#,$@的含义解释
  6. CSS3中的3D变换与简易立方体的制作
  7. 【英语学习】【WOTD】gullible 释义/词源/示例
  8. 使用perl连接oracle数据库
  9. [转载] python numpy 总结
  10. 微信小程序在线旅游信息管理+后台管理系统
  11. asp.net-DirectoryEntry基本操作入门
  12. GitHub下载指定文件或文件夹
  13. 流程控制 case分支
  14. 电风扇计算机控制系统,电脑控制型电风扇电路原理与检修
  15. 计算机网络安全技术简答题,计算机网络安全技术简答题
  16. [bib]论文参考文献的获取方式(持更)
  17. 给春节的宴客小吃来点小惊喜---绿茶甜心曲奇
  18. 易语言游戏基址内存数据CEAA自动汇编脚本注入及CALL的调用
  19. 史上最全Python学习笔记(基于《Python学习手册(第4版)》)——Part3 语句和语法
  20. 柳维尔定理与代数基本定理

热门文章

  1. 持续集成工具Jenkins看这篇就够啦!
  2. Nginx 学习 —— 负载均衡
  3. MYSQL: MERGE引擎实现多分表的联合
  4. JPA-CascadeType四个属性的讲解
  5. android 截长图 方法,Android实现截屏与截长图功能
  6. python设置坐标轴刻度值字体大小_python 设置xlabel,ylabel 坐标轴字体大小,字体类型...
  7. mysql自增字段不连续_MySQL中自增主键不连续之解决方案。(20131109)
  8. 数据中心机房工程建设需要注意的重大问题
  9. 探讨打造会呼吸的数据中心
  10. 这三大“监控系统”是机房重中之重?