大家谁知道VC6.0与.NET 之间存在多大的差异,都有什么差异呢
1个回答
展开全部
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
大家谁知道VC6.0与.NET 之间存在多大的差异,都有什么差异呢
谁能给我一份详细资料
包括各个函数 类之间的差异 和优缺点
谢谢呀
解析:
(1) 首先看看目录文件架构的不同:(vc的默认安装目录为:…\ Microsoft Visual Studio .NET;而vc6.0默认安装目录为:…\Microsoft Visual Studio)
vc目录下的文件目录数比vc6.0的要多出一些,但主要的目录也大体上相同。只是原来的mon变为了mon7,vc98变为了vc7;我们主要看一下
vc7和vc98下的文件有什么不同;vc的前几个文件目录(包括:bin,include,lib,crt,atlmfc)与vc6.0基本相同,不同的是vc将atl和mfc合并为一个目录atlmfc,原来的mfc源代码可以在atlmfc\src\mfc中找到。
而vc7中的其他新增的文件目录则估计是微软细分功能的产物。我们暂不去考虑。
(2)配置应用程序使用环境:由于vs集成了vc ,vb,vc#等多种开发工具而且提供了多种配置方案,对于vc开发人员,推荐使用“vc 开发人员”配置。
(3)MFC应用程序向导差异:当分别在vc 和vc6.0用MFC应用程序向导创建新工程Test时,你就会发现MFC应用程序向导在两个版本中稍有不同。首先在
向导的样式上,vc使用的是嵌入浏览器模式而vc6.0使用的是对话框模式,而且vc在应用程序类型选项中提供了“多顶级文档”的方案和更加明显的
“用户界面功能”选项。
(4) 应用程序向导产生的各种文件的差异:下面列出两个版本中的功能对应的文件
vc
vc6.0
xx.sln(visual studio solution )
xx.dsw(developer studio workspace)
xx.vcpj(visual studio project)
xx.dsp(developer studio project)
其他文件基本相同,但vc中已经不存在xx.clw(class wizard)文件了,但多了一个xx.aps文件和一个xx.manifest文件(在res文件夹中)。
(5)stdafx.h文件的不同:在vc生成的文件中stdafx.h文件变化最大,众所周知stdafx.h以及stdafx.cpp是为了产生预编译块xx.pch,下面是Test项目中stdafx.h文件的源代码:
stdafx.h : 标准系统包含文件的包含文件,
或是经常使用但不常更改的
项目特定的包含文件
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN 从 Windows 标头中排除不常使用的资料
#endif
如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。
有关不同平台的相应值的最新信息,请参考 MSDN。
#ifndef WINVER 允许使用 Windows 95 和 Windows NT 4 或更高版本的特定功能。
#define WINVER 0x0400 为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
#endif
#ifndef _WIN32_WINNT 允许使用 Windows NT 4 或更高版本的特定功能。
#define _WIN32_WINNT 0x0400 为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
#endif
#ifndef _WIN32_WINDOWS 允许使用 Windows 98 或更高版本的特定功能。
#define _WIN32_WINDOWS 0x0410 为 Windows Me 及更新版本改变为适当的值。
#endif
#ifndef _WIN32_IE 允许使用 IE 4.0 或更高版本的特定功能。
#define _WIN32_IE 0x0400 为 IE 5.0 及更新版本改变为适当的值。
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS 某些 CString 构造函数将是显式的
关闭 MFC 对某些常见但经常被安全忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> MFC 核心和标准组件
#include <afxext.h> MFC 扩展
#include <afxole.h> MFC OLE 类
#include <afxodlgs.h> MFC OLE 对话框类
#include <afxdisp.h> MFC 自动化类
#include <afxdtctl.h> Inter Explorer 4 公共控件的 MFC 支持
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> Windows 公共控件的 MFC 支持
#endif _AFX_NO_AFXCMN_SUPPORT
#include <afxrich.h> MFC Rich Edit 类
更不同的是vc每个头文件中的类似如下的东东:
#if !defined(AFX_STDAFX_H__***********_DA85_4F3B_81F6_E4E0A168D780__INCLUDED_)
#define AFX_STDAFX_H__***********_DA85_4F3B_81F6_E4E0A168D780__INCLUDED_
不见了,真想不懂微软为什么不用file guarder,那它是如何防止同一个头文件被重复包含的,嗨?
(5)classwizard的有无:当你第一次使用vc时,你会惊讶的发现classwizard不见了,你会大喊“微软你太过分了。”但是如果你继续发掘的话你会发现其实
classwizard不见了又如何,微软提供的替代它的功能甚至超过了它,这些功能很分散,这里不便详述,还是你自己去发掘吧!
(6)项目方案配置. 项目工程的配置和项目目录设置:
vc中的项目方案配置和项目工程的配置都可以在“解决方案资源管理器”(solution explorer)中完成:(以Test为例)
项目方案配置方法:单击“解决方案资源管理器”中的“解决方案Test”,然后
在右键菜单中选择“属性”即可配置。
项目工程的配置方法:单击“解决方案资源管理器”中的“Test”,然后
在右键菜单中选择“属性”即可配置。
项目目录设置方法:选择 “工具”菜单------“选项”,弹出“选项”对话框
在“项目”中即可配置。
问题描述:
大家谁知道VC6.0与.NET 之间存在多大的差异,都有什么差异呢
谁能给我一份详细资料
包括各个函数 类之间的差异 和优缺点
谢谢呀
解析:
(1) 首先看看目录文件架构的不同:(vc的默认安装目录为:…\ Microsoft Visual Studio .NET;而vc6.0默认安装目录为:…\Microsoft Visual Studio)
vc目录下的文件目录数比vc6.0的要多出一些,但主要的目录也大体上相同。只是原来的mon变为了mon7,vc98变为了vc7;我们主要看一下
vc7和vc98下的文件有什么不同;vc的前几个文件目录(包括:bin,include,lib,crt,atlmfc)与vc6.0基本相同,不同的是vc将atl和mfc合并为一个目录atlmfc,原来的mfc源代码可以在atlmfc\src\mfc中找到。
而vc7中的其他新增的文件目录则估计是微软细分功能的产物。我们暂不去考虑。
(2)配置应用程序使用环境:由于vs集成了vc ,vb,vc#等多种开发工具而且提供了多种配置方案,对于vc开发人员,推荐使用“vc 开发人员”配置。
(3)MFC应用程序向导差异:当分别在vc 和vc6.0用MFC应用程序向导创建新工程Test时,你就会发现MFC应用程序向导在两个版本中稍有不同。首先在
向导的样式上,vc使用的是嵌入浏览器模式而vc6.0使用的是对话框模式,而且vc在应用程序类型选项中提供了“多顶级文档”的方案和更加明显的
“用户界面功能”选项。
(4) 应用程序向导产生的各种文件的差异:下面列出两个版本中的功能对应的文件
vc
vc6.0
xx.sln(visual studio solution )
xx.dsw(developer studio workspace)
xx.vcpj(visual studio project)
xx.dsp(developer studio project)
其他文件基本相同,但vc中已经不存在xx.clw(class wizard)文件了,但多了一个xx.aps文件和一个xx.manifest文件(在res文件夹中)。
(5)stdafx.h文件的不同:在vc生成的文件中stdafx.h文件变化最大,众所周知stdafx.h以及stdafx.cpp是为了产生预编译块xx.pch,下面是Test项目中stdafx.h文件的源代码:
stdafx.h : 标准系统包含文件的包含文件,
或是经常使用但不常更改的
项目特定的包含文件
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN 从 Windows 标头中排除不常使用的资料
#endif
如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。
有关不同平台的相应值的最新信息,请参考 MSDN。
#ifndef WINVER 允许使用 Windows 95 和 Windows NT 4 或更高版本的特定功能。
#define WINVER 0x0400 为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
#endif
#ifndef _WIN32_WINNT 允许使用 Windows NT 4 或更高版本的特定功能。
#define _WIN32_WINNT 0x0400 为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
#endif
#ifndef _WIN32_WINDOWS 允许使用 Windows 98 或更高版本的特定功能。
#define _WIN32_WINDOWS 0x0410 为 Windows Me 及更新版本改变为适当的值。
#endif
#ifndef _WIN32_IE 允许使用 IE 4.0 或更高版本的特定功能。
#define _WIN32_IE 0x0400 为 IE 5.0 及更新版本改变为适当的值。
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS 某些 CString 构造函数将是显式的
关闭 MFC 对某些常见但经常被安全忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> MFC 核心和标准组件
#include <afxext.h> MFC 扩展
#include <afxole.h> MFC OLE 类
#include <afxodlgs.h> MFC OLE 对话框类
#include <afxdisp.h> MFC 自动化类
#include <afxdtctl.h> Inter Explorer 4 公共控件的 MFC 支持
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> Windows 公共控件的 MFC 支持
#endif _AFX_NO_AFXCMN_SUPPORT
#include <afxrich.h> MFC Rich Edit 类
更不同的是vc每个头文件中的类似如下的东东:
#if !defined(AFX_STDAFX_H__***********_DA85_4F3B_81F6_E4E0A168D780__INCLUDED_)
#define AFX_STDAFX_H__***********_DA85_4F3B_81F6_E4E0A168D780__INCLUDED_
不见了,真想不懂微软为什么不用file guarder,那它是如何防止同一个头文件被重复包含的,嗨?
(5)classwizard的有无:当你第一次使用vc时,你会惊讶的发现classwizard不见了,你会大喊“微软你太过分了。”但是如果你继续发掘的话你会发现其实
classwizard不见了又如何,微软提供的替代它的功能甚至超过了它,这些功能很分散,这里不便详述,还是你自己去发掘吧!
(6)项目方案配置. 项目工程的配置和项目目录设置:
vc中的项目方案配置和项目工程的配置都可以在“解决方案资源管理器”(solution explorer)中完成:(以Test为例)
项目方案配置方法:单击“解决方案资源管理器”中的“解决方案Test”,然后
在右键菜单中选择“属性”即可配置。
项目工程的配置方法:单击“解决方案资源管理器”中的“Test”,然后
在右键菜单中选择“属性”即可配置。
项目目录设置方法:选择 “工具”菜单------“选项”,弹出“选项”对话框
在“项目”中即可配置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询