vc6.0到vc 2008(vc 9.0)的变化

转载 2012年03月22日 15:45:54

1.MessageBox()
   VC++6.0:MessageBox("Hello,World!");
  VS2008:MessageBox(L"Hello,World!"); 或 MessageBox(TEXT("Hello,World!"));


2.Combo box内容添加方法
    VC++6.0:Drop-Down List Box Control 的 Properties 中的 Data 用 Ctrl-Enter 输入
    VS2008:更名为 Combo-Box Control ,并在右侧 Data 区域用 semicolons(即';')分隔输入


3.从.net开始就没有classwizard了,全部在属性窗口里了
     属性窗口中有,闪电图标及右边的都是,包括事件,消息,虚函数重载,加入变量则是在类标上右击->添加变量……


4.消息映射
VS2005对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2005下编译不通过
a,ON_MESSAGE(message,OnMyMessage);
OnMyMessage返回值必须为LRESULT,其形式为:afx_msg LRESULT OnMyMessage(WPARAM, LPARAM);
如果不符合,则有错误提示:
error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
b,在VS2005中,OnMyMessage返回值必须为BOOL,且含有一个 UINT 参数指出了命令ID,其形式为:afx_msg BOOL OnMyMessage(UINT);如果不符合,则有错误提示.
如在VS6中,OnMyMessage2的定义为afx_msg BOOL OnViewZoomBar()时亦可正常编译通过,但在VS2005下,有错误提示:
error C2440: “static_cast”: 无法从“BOOL (__thiscall CMainFrame::* )(void)”转换为“BOOL (__thiscall CCmdTarget::* )(UINT)”
error C2440: “static_cast”: 无法从“BOOL (__thiscall CMainFrame::* )(void)”转换为“BOOL (__thiscall CCmdTarget::* )(UINT)”


5.字符处理
    在c中广泛使用的strcpy,strcat,strstr等等推荐使用更为安全strcpy_s,strcat_s,strstr_s等来代替.
6.数学函数检查
      VS2005中,数学函数的参数检查更为严格,如pow(2, 45)会引起一个错误提示如下:
       error C2668: “pow”: 对重载函数的调用不明确
      d:\program files\microsoft visual studio 8\vc\include\math.h(575): 可能是“long double pow(long double,int)” 
       d:\program files\microsoft visual studio 8\vc\include\math.h(527): 或“float pow(float,int)” 
       d:\program files\microsoft visual studio 8\vc\include\math.h(489): 或“double pow(double,int)”
        试图匹配参数列表“(int, int)”时 正确的使用为pow(2.0, 45)
7.更加符合C++标准
   如在VS6中,在FOR循环中的循环变量的定义的作用域延伸到循环体外,VS2005则修正了这样的bug。
   VC6:
   for(int i=0;i<100;i++)f2(); 
   for(i = 1;i<10;i++)f1();    //i已经定义
  而有VS2005中,第二句的i必须重新定义

关于windows server 2008能不能装VC 6.0的问题

答案是肯定的。可以装,也可以正常使用。 只是貌似编译ocx的时候会报错!!百思不得其解。当然,为然的official site上,vc 6.0不在可兼容的软件之列。 最近在windows server...
  • bichenggui
  • bichenggui
  • 2010年02月04日 17:28
  • 2652

DebugView用于VC++调试

1.debugview http://technet.microsoft.com/en-us/sysinternals/bb896647
  • songtianming
  • songtianming
  • 2014年06月23日 10:15
  • 1774

VC6.0中OpenCV配置

Opencv库安装 1. 安装所需要的软件    1、 安装OpenCV          可以从网上下载OpenVC高级版本,但这里使用的 是OpenCV 1.0 ,缺省安装的目录是c:\OpenC...
  • he_qiao_2010
  • he_qiao_2010
  • 2013年11月04日 12:14
  • 2384

VC6.0 中如何实现最小化到托盘以及恢复?

(一)  原理1、最小化的原理:首先要将窗口隐藏,然后 在右下角绘制图标。2、恢复的原理:将窗口显示,再将托盘中的图片删除。(二)程序实现1、自定义消息WM_SHOWTASK: #define WM_...
  • michaelli
  • michaelli
  • 2007年09月29日 17:15
  • 1664

ffmpeg库移植到vc下需要的步奏

在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷贝到工程中就行了,还需要做以下几步。(此方法适用于自己使用MinGW编译的库,也同样适用于从网上下载的编译好的库,例如http:...
  • dancing_night
  • dancing_night
  • 2015年04月28日 11:58
  • 778

C源程序在VC6.0和gcc进行源代码移植问题

C语言早期发展【该部分为网友所写(拷贝)】 1969-1973年在美国电话电报公司(AT&T)贝尔实验室开始了C语言的最初研发。根据C语言的发明者丹尼斯·里奇 (Dennis Ritchie) 说,...
  • iamhouhuan
  • iamhouhuan
  • 2017年02月25日 09:04
  • 556

解决VC不能添加文件到工程的问题

曾经我有一个同学说它的VC软件只要选择添加文件到工程,软件就会崩溃,即停止运行,当时我就笑了,怎么可能会出现这个问题,只要你正常安装的话就不会出现这个问题了         结果之后我就遇到这个问题...
  • u014706130
  • u014706130
  • 2014年05月31日 19:51
  • 1180

VS2008/VS2010安装时提示VC++9.0 Runtime安装失败问题的解决方法

查了一下,大概有一下几种解决方法:    1)http://blog.csdn.net/zlqqhs/article/details/8821608    2)https://dotblogs.com...
  • whysnlc
  • whysnlc
  • 2016年03月19日 18:17
  • 2013

VC 6.0中编译和使用OpenSSL的过程

一、编译OpenSSL    在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。        下载最新版本的Perl:http://downloads.act...
  • trents
  • trents
  • 2010年01月07日 14:40
  • 2208

如何用VC6.0编写Windows Service程序

如何用VC6.0编写Windows Service程序 2005/10/11杨登峰(MSN:dengfengyang@hotmail.com)本人在项目开发要用到创建Service应用程序。但是网络好...
  • ydfok
  • ydfok
  • 2005年10月11日 21:46
  • 5005
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vc6.0到vc 2008(vc 9.0)的变化
举报原因:
原因补充:

(最多只允许输入30个字)