用VS2005和VC++6.0编写C++程序的区别有哪些?
在VisualC++6.0写好的可以正常运行程序,拿到Visualstudio2005上运行,经常发生不能运行的情况,或弹框,或提示语法错误,请问在这两个软件上写C++程...
在Visual C++ 6.0写好的可以正常运行程序,拿到Visual studio 2005上运行,经常发生不能运行的情况,或弹框,或提示语法错误,请问在这两个软件上写C++程度需要注意的主要区别是什么?
展开
展开全部
2005对数据类型的检查更严格,有些隐式转换是不容许地。对C++代码的安全性更高。
1.菜单项:
和VC6.0一样,也是找到资源视图,点击menu资源,在上面新建自己的菜单项。只是‘属性’,陈列的方式不同,VS2005陈列在右下角;在VC6.0中,对菜单项建立类向导,而在VS2005中,点右键,选择的是:‘添加事件处理程序’,然后再对话框里选择相应的消息类型,在类列表中选择要添加的哪个类中。点击‘添加编辑’按钮即可。
2.对话框:
和VC6.0一样,也是找到资源视图,点击menu资源,可以编辑现有的对话框,亦可以点击右键,选择插入对话框。在界面的右上部分,有各种控件,和VC6.0一样的。如何拖动,摆放空间等等。右下角显示各个控件的属性。修改属性是非常方便的。对于按钮控件,我们也可以右键,添加时间处理程序。对于添加基于对话框的类,只需要双击对话框资源,就会出现MFC的类向导,填写类名,选择基类,一般基类默认为时CDialog类。有时候,第一次使用类向导的时候,会因为VS2005和IE8不兼容的问题,这个时候,只需要到网上查一下错误原因,增加一个注册表项,并设置好相应的值即可。
3.为MFC的类添加Windows消息
在VC6.0中,我们只需要在类视图中右键类名,选择添加windows消息处理函数即可,而在VS2005中,右键类名之后是没有这个选项的。VS2005将windows的消息放在了类属性里面了。具体做法如下:打开类视图,选中一个类,然后在右下边的属性边框里面,点击‘消息’标签,再点中要添加的消息,比如WM_LBUTTONUP,点中之后,注意观察,被点中的消息栏最右边,有一个向下的箭头,点一下那个箭头,就会出现‘<添加>LbuttonUp’标签。点击这个标签之后,光标就跳转到消息处理函数中了,在这里编写相应的代码即可。
4. 类视图的用法习惯
在VC6.0中,要想看某个类的定义,直接双击类视图中的类名即可。在VS2005中,也可以进行相同的操作。但是,当想看类的成员变量的时候,会发现,点开类名左边的那个小加号,出现的不是类的成员变量和成员函数,而是出现了两个扩展项,分别是:映射和基类型;怎么才能看到类的成员变量和成员函数,细心观察就会发现,当点中一个类的时候,它下面的一个页面栏中已经列举出了该类的成员函数和成员变量。双击它的成员函数,光标自动定位到该函数的实现位置了。
5.添加成员函数和成员变量
这一点,VC6.0和VS2005是差不多的,点击右键,选择添加,在选择变量或者函数,就会出现相应的对话框,在里面填写相应的属性即可。
6.为控件关联变量
VC6.0中,可以非常方便的为一个控件关联变量。只需要对控件点击右键,建立类向导,一步一步往下做就可以了;由于我们对VC6.0已经非常的习惯了,所以感觉很方便;其实,在VS2005中,为控件关联变量更容易了!只需要对控件点击右键,选择添加变量,就会出现一个‘添加成员变量向导’的对话框,这个对话框非常的清晰.用户可以选择变量的访问属性、变量类型、变量名、控件ID、类别等属性;需要注意的是:VS2005将关联的变量进行了类别的分类(Control类别和Value类别);比如,我们对一个编辑框控件关联变量时,如果想要改变编辑框的外观及属性,那么我们就选择Control类别,为其关联一个CEdit对象;如果想要获得编辑框的值,就可选择Value类别;选择不同的类别,在变量类型中所显示的种类不同.
7.添加类和添加资源
在VS2005中,可以在类视图中,对工程名点击右键,选择添加,在添加中可以选择类,然后进入类的页面,继续选择MFC类,….;添加资源也是如此,点击添加资源;后续的操作和VC6.0基本一致.
1.菜单项:
和VC6.0一样,也是找到资源视图,点击menu资源,在上面新建自己的菜单项。只是‘属性’,陈列的方式不同,VS2005陈列在右下角;在VC6.0中,对菜单项建立类向导,而在VS2005中,点右键,选择的是:‘添加事件处理程序’,然后再对话框里选择相应的消息类型,在类列表中选择要添加的哪个类中。点击‘添加编辑’按钮即可。
2.对话框:
和VC6.0一样,也是找到资源视图,点击menu资源,可以编辑现有的对话框,亦可以点击右键,选择插入对话框。在界面的右上部分,有各种控件,和VC6.0一样的。如何拖动,摆放空间等等。右下角显示各个控件的属性。修改属性是非常方便的。对于按钮控件,我们也可以右键,添加时间处理程序。对于添加基于对话框的类,只需要双击对话框资源,就会出现MFC的类向导,填写类名,选择基类,一般基类默认为时CDialog类。有时候,第一次使用类向导的时候,会因为VS2005和IE8不兼容的问题,这个时候,只需要到网上查一下错误原因,增加一个注册表项,并设置好相应的值即可。
3.为MFC的类添加Windows消息
在VC6.0中,我们只需要在类视图中右键类名,选择添加windows消息处理函数即可,而在VS2005中,右键类名之后是没有这个选项的。VS2005将windows的消息放在了类属性里面了。具体做法如下:打开类视图,选中一个类,然后在右下边的属性边框里面,点击‘消息’标签,再点中要添加的消息,比如WM_LBUTTONUP,点中之后,注意观察,被点中的消息栏最右边,有一个向下的箭头,点一下那个箭头,就会出现‘<添加>LbuttonUp’标签。点击这个标签之后,光标就跳转到消息处理函数中了,在这里编写相应的代码即可。
4. 类视图的用法习惯
在VC6.0中,要想看某个类的定义,直接双击类视图中的类名即可。在VS2005中,也可以进行相同的操作。但是,当想看类的成员变量的时候,会发现,点开类名左边的那个小加号,出现的不是类的成员变量和成员函数,而是出现了两个扩展项,分别是:映射和基类型;怎么才能看到类的成员变量和成员函数,细心观察就会发现,当点中一个类的时候,它下面的一个页面栏中已经列举出了该类的成员函数和成员变量。双击它的成员函数,光标自动定位到该函数的实现位置了。
5.添加成员函数和成员变量
这一点,VC6.0和VS2005是差不多的,点击右键,选择添加,在选择变量或者函数,就会出现相应的对话框,在里面填写相应的属性即可。
6.为控件关联变量
VC6.0中,可以非常方便的为一个控件关联变量。只需要对控件点击右键,建立类向导,一步一步往下做就可以了;由于我们对VC6.0已经非常的习惯了,所以感觉很方便;其实,在VS2005中,为控件关联变量更容易了!只需要对控件点击右键,选择添加变量,就会出现一个‘添加成员变量向导’的对话框,这个对话框非常的清晰.用户可以选择变量的访问属性、变量类型、变量名、控件ID、类别等属性;需要注意的是:VS2005将关联的变量进行了类别的分类(Control类别和Value类别);比如,我们对一个编辑框控件关联变量时,如果想要改变编辑框的外观及属性,那么我们就选择Control类别,为其关联一个CEdit对象;如果想要获得编辑框的值,就可选择Value类别;选择不同的类别,在变量类型中所显示的种类不同.
7.添加类和添加资源
在VS2005中,可以在类视图中,对工程名点击右键,选择添加,在添加中可以选择类,然后进入类的页面,继续选择MFC类,….;添加资源也是如此,点击添加资源;后续的操作和VC6.0基本一致.
展开全部
vc6对于c++标准的支持不好 而且存在一些bug 例如string的getline..
vs2005相对而言对标准的支持就好很多了 而且有些东西vs2005里面会有warning的 vc6里面啥也没有
对标准的支持而言 就举这个语句作例子吧
for(int i=0;i!=5;++i)
0;
for(int i=0;i!=10;++i)
1;
这个东西在vc6是编译不过的 会说i重定义 但是根据标准其实这样子是可行的 i的作用域只在for和其block里面
个人觉得 如果要养成良好习惯最好就用新编译器
如果只是课外学点编程做些小东西 然后觉得vs2005 2008 2010这些太慢的话 那完全可以用vc6
我的建议是如果你是计算机专业的还是用vs2008吧
vs2005相对而言对标准的支持就好很多了 而且有些东西vs2005里面会有warning的 vc6里面啥也没有
对标准的支持而言 就举这个语句作例子吧
for(int i=0;i!=5;++i)
0;
for(int i=0;i!=10;++i)
1;
这个东西在vc6是编译不过的 会说i重定义 但是根据标准其实这样子是可行的 i的作用域只在for和其block里面
个人觉得 如果要养成良好习惯最好就用新编译器
如果只是课外学点编程做些小东西 然后觉得vs2005 2008 2010这些太慢的话 那完全可以用vc6
我的建议是如果你是计算机专业的还是用vs2008吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是专门做算法的程序的话,建议用VC++ 6.0……因为这个可以支持单文件编译,而VS05/08都是要建工程式的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体原因不大清楚....但VC6早就过时了...建议用VS08吧
如果是在各种OJ上做题...更要如此了...
举个例子来说...define Pi acos(-1) 这个句子在VC6是可以通过编译的..
但是在VS05中..就会出现编译错误...因为有acos的参数类型可能不同..
强制转换为acos((double)-1) 就可以了
如果是在各种OJ上做题...更要如此了...
举个例子来说...define Pi acos(-1) 这个句子在VC6是可以通过编译的..
但是在VS05中..就会出现编译错误...因为有acos的参数类型可能不同..
强制转换为acos((double)-1) 就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询