游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: littlewater

[入门级问题]VC 6 和 VC 7的选择

[复制链接]

24

主题

94

帖子

96

积分

注册会员

Rank: 2

积分
96
 楼主| 发表于 2005-6-23 16:11:00 | 显示全部楼层

Re:[入门级问题]VC 6 和 VC 7的选择

STL port就是助手??还是别的什么?

VC6 界面实在比不过人家

1

主题

27

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2005-6-24 11:30:00 | 显示全部楼层

Re:[入门级问题]VC 6 和 VC 7的选择

VC7在标准C的支持也比VC6做得好一些.

还有VC7对于Unicode的支持也做得更好一些.

当然,还有一个更重要的是,VC7自带的Windows SDK比VC6更新,有很多新的Windows 2000后的API,VC6不一定支持!

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-6-24 11:52:00 | 显示全部楼层

Re:[入门级问题]VC 6 和 VC 7的选择

那么爽?
我也想买, vc7多少钱一套?

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-6-24 12:20:00 | 显示全部楼层

Re:[入门级问题]VC 6 和 VC 7的选择

建议使用VC7

VC7无论实在编译后代码的质量还是库函数的运行效率都比VC6好

我还在用VC6的原因是因为我的机器跑VC7太累,内存吃的厉害

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-6-24 13:29:00 | 显示全部楼层

Re:[入门级问题]VC 6 和 VC 7的选择

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/vcrefwhatsnewlibrariesvisualc70.asp

Visual C++ .NET 中包含的下列库可能是新增的,也可能是经过更改的。

活动模板库 (ATL)
ATL Server
C 运行时库
Microsoft 基础类 (MFC)
OLE DB 模板
共享类
标准 C++ 库
旧 iostream 库
活动模板库 (ATL)
ATL 项目的默认设置已更改。有关详细信息,请参见默认 ATL 项目配置。
更多关于 ATL 方法的参考主题包含代码示例。
支持集合和枚举数:ICollectionOnSTLImpl、IEnumOnSTLImpl、CComEnumImpl、CComEnumOnSTL、CComEnum。
新类 CImage 提供增强的位图支持,包括以 JPEG、GIF、BMP 和可移植网络图形 (PNG) 格式加载和保存图像的能力。
用于管理数组、列表和树的新增类:CAtlArray Class、CAtlList Class、CAtlMap Class、CRBMap Class 以及 CRBMultiMap 类。
新增字符串转换宏和类:ATL 和 MFC 字符串转换宏。
实用工具类:CAdapt。
宿主 ActiveX 控件:IAxWinAmbientDispatch、IAxWinHostWindow、CAxWindow2。
CComBSTR 和 CComVariant 的增强。
新增宏:OBJECT_ENTRY_AUTO 和 OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO。
简化的对象创建:CComCoClass::CreateInstance。
改进的调试支持:_ATL_DEBUG_INTERFACES。
对 REG_MULTI_SZ 值的注册表支持:CRegKey、创建注册器脚本。
新增安全性类:CAcl、CDacl、CSacl、CSecurityAttributes、CSecurityDesc、CSid、CTokenGroups 和 CTokenPrivileges。
新增数组管理类:CSimpleArray、CSimpleMap、CComSafeArray、CComSafeArrayBound。
Currency 对象类:CComCurrency。
下列 ATL 宏应视为已过时:atlTraceFlags、ATLTrace、BEGIN_OBJECT_MAP、OBJECT_ENTRY、END_OBJECT_MAP。
几个 ATL 方法已被取代:有关详细信息,请参见已过时的 ATL 主题中的“已否决的 ATL 函数”一节。
CComModule 功能已被分布到几个新类中;有关详细信息,请参见 ATL 模块类。
ATL Server
ATL Server 是一组本机 C++ 类,开发人员可用它来创建 Web 应用程序、XML Web services 以及其他服务器应用程序。许多类还可以用于客户端应用程序或组件。

ATL Server 是 Visual C++ 的新增功能。有关更多信息,请参见 ATL Server 和 ATL Server 参考。

C 运行时库
运行时错误检查函数。
如果内存分配失败,new 运算符可能引发异常或返回零。有关更多信息,请参见 new 和 delete 运算符。
使用 _resetstkoflw 从堆栈溢出恢复。
允许使用超过 2038 年的日期的新函数:_ctime64 _wfindnext64 _gmtime64 _wstat64
_wctime64 _fstat64 _localtime64 _time64
_findfirst64 _ftime64 _mktime64 _utime64
_wfindfirst64 _futime64 _stat64 _wutime64
_findnext64      

使用 _CrtSetDbgFlag 配置调试堆检查。
确定块和子块类型 _CrtReportBlockType。
数学常数。
新增宽字符函数:_cwprintf _putwch _putws _wtof

新增 __int64 版本的字符串函数:_strtoi64 _strtoui64 _wctoi64 _wcstoui64

新增 Unicode 版本的控制台函数:_getwch _ungetwch() cgetws _getwche
_cwscanf      

计算打印格式化数据所需的字符数的新增字符串函数:_scprintf _scwprintf _vscprintf _vscwprintf
_snscanf _snwscanf     

数据对齐函数。
_set_security_error_handler,用于注册安全错误处理程序。
由于受 C99 发布的时间所限,此 Visual C++ 版本不符合该标准。
新增的字节交换函数:_byteswap_uint64、_byteswap_ulong、_byteswap_ushort。
_set_SSE2_enable,用于使用 SSE2 指令。
_CrtSetReportHook2。
Microsoft 基础类 (MFC) 库
有关 MFC 的参考主题包含数百个新的代码示例。
静态强制类型转换和 MFC 消息映射   从 Visual C++ .NET 开始,MFC 对消息处理函数的返回类型和参数类型进行更严格的类型检查。这些新增行为通过使用错误信息标记潜在不安全的消息处理函数,来通知开发人员可能会遇到的问题。MFC 现对 ON_MESSAGE、ON_REGISTERED_MESSAGE、ON_THREAD_MESSAGE 和 ON_REGISTERED_THREAD_MESSAGE 使用静态强制类型转换。
例如,过去开发人员可以对 ON_MESSAGE 或 ON_REGISTERED_MESSAGE 使用返回 void 而非 LRESULT 的成员函数,并且编译时不报告任何错误。而使用 Visual C++ .NET,则可以捕获潜在的错误强制类型转换,并将它标记为错误。开发人员可以通过替换返回类型(用 LRESULT 替换)并重新编译来修复这种潜在的问题。

DHTML 编辑组件:CHtmlEditCtrl、CHTMLEditView、CHtmlEditDoc。
DHTML 对话框:CDHtmlDialog、CMultiPageDHtmlDialog。
用于分析参数列表的 ISAPI 支持:CHttpArg、CHttpArgList。
对无窗口控件的支持:COleControlSite、COleControlContainer 和 COccManager。
对在 MFC 应用程序中使用 HTML 帮助的增强支持:显示帮助查看器。
Windows 2000 打印属性表:CPrintDialogEx。
DAO 支持:Visual C++ MFC 应用程序向导和 MFC DLL 应用程序向导不再支持 DAO 数据库项目。但是,仍然可以使用“添加类向导”添加从 DAO 派生的类。对于新的本机 C++ 项目,Microsoft 建议使用 OLE DB 或 ODBC。DAO 只用于维护现有的应用程序。
在此版本中,TRACE0、TRACE1、TRACE2 和 TRACE3 被视为已过时;请使用 ATLTRACE2。Trace 与 ATLTRACE2 具有相同的功能。
在选择对话框字体时,请使用 MS Shell Dlg,而不是 MS Sans Serif 或 Helv 字体。MFC 以前的版本会自动将 MS Sans Serif 或 Helv 替换为 DEFAULT_GUI_FONT 或系统字体,但此版本的 MFC 不再执行此操作。请参见常规 MBCS 编程建议。
对附属 DLL 中的本地化资源的增强支持:MFC 应用程序中的本地化资源:附属 DLL。
OLE DB 模板
Visual C++ 中提供以下 OLE DB 模板:

新增的使用者类

CDataConnection
CDynamicAccessor
CDynamicParameterAccessor
CDynamicStringAccessor
CDynamicStringAccessorA
CDynamicStringAccessorW
CStreamRowset
CXMLAccessor
新增的使用者宏

COLUMN_NAME* 宏,用于按名称绑定到数据库中的特定列。
BLOB* 宏,用于绑定二进制大对象 (BLOB)。
新增的提供程序类

IDBSchemaRowsetImpl
IErrorRecordsImpl
IRowsetChangeImpl
IRowsetCreatorImpl
IRowsetNotifyCP
IRowsetNotifyImpl
IRowsetLocateImpl
IRowsetUpdateImpl
新增的 64 位数据类型

若干 OLE DB 模板类中的方法已经被更改为使用新的 64 位数据类型而不是旧的 32 位数据类型。文档已更新以反映这些变化。如果文档和头文件(atldb.h、atldbcli.h 和 atldbsch.h)有差异,头文件会包含最新的参数类型。

有关更多信息,请参见 MDAC SDK 中的新增功能。

从 Visual C++ 6.0 到 Visual C++ .NET 的重大更改

下面列出了从 Visual C++ 6.0 到 Visual C++ .NET 在 OLE DB 模板中进行的重大更改。您还可以在知识库文章“INFO: Porting Issues with Visual Studio .NET OLE DB Provider Template Classes”(Q321743)(“信息:与 Visual Studio .NET OLE DB 提供程序模板类有关的移植问题”(Q321743))中找到与 OLE DB 模板中的更改有关的更多信息。还可以在 MSDN Library CD-ROM 中或 http://support.microsoft.com/support 上找到知识库文章。

OLE DB 使用者类和模板:

通常,访问器类必须实现附加成员。只有在手动实现自己的访问器类时这才是必需的。如果您的访问器类派生自 CAccessor,则不需要这样做。

Visual C++ 6.0 Visual C++ .NET
CRowset 是类。 CRowset 是类模板并采用一个参数 TAccessor,表示访问器类。
CBulkRowset 是类。 CBulkRowset 是类模板。
CArrayRowset 的基类是模板参数(默认值为 CRowset)。 CArrayRowset 始终从 CBulkRowset 派生。
CDynamicAccessor::GetColumnInfo 采用三个参数。 CDynamicAccessor::GetColumnInfo 具有采用附加参数 ppStringsBuffer 的新形式。使用此参数消除内存泄漏。不赞成使用旧方法。
CAccessorRowset 模板的第二个参数 Rowset 是行集类。 CAccessorRowset 模板的第二个参数 TRowset 是行集类模板。
CTable 模板的第二个参数 Rowset 是行集类。 CTable 模板的第二个参数 TRowset 是行集类模板。
CCommand 模板的第二个参数 Rowset 是行集类。 CCommand 模板的第二个参数 TRowset 是行集类模板。
DEFINE_COMMAND 宏 不赞成使用 DEFINE_COMMAND 宏。 改用 DEFINE_COMMAND_EX。

OLE DB 提供程序类和模板:

许多接口和方法的内部实现自 Visual C++ 6.0 后已经进行了更改。 根据您的应用程序是否重写这些方法,这些更改可能会导致兼容性问题。

Visual C++ 6.0 Visual C++ .NET
行集/访问器实现使用了 CSimpleMap/CSimpleArray 类。用户提供的集合类必须与 CSimpleMap/CSimpleArray 兼容。 行集/访问器实现使用 CAtlMap/CAtlArray 类。用户提供的集合类必须与 CAtlMap/CAtlArray 兼容。此外,应该检查调用这些集合类的方法的代码,因为在可能导致运行时错误的 CAtl* 和 CSimple* 类(参数、返回值等)之间有显著差异。
ICommandImpl 从 ICommand 派生。 ICommandImpl 是从模板的 CommandBase 参数(默认值为 ICommand)派生的模板。
ICommandTextImpl 从 ICommandImpl<ICommandImpl<T> 派生。 ICommandTextImpl 从 ICommandImpl<ICommandImpl<T, ICommandText> 派生。请注意,这里的 ICommandImpl 从 ICommandText(而不是默认的 ICommand)派生。

共享类
现在可以在任何 C++ 程序中使用许多新增和修改过的类。有关详细信息,请参见共享类。

标准 C++ 库
标准 C++ 库已更新:

hash_map Class
hash_set Class
可选的异常处理支持。
增强的代码格式设定(可读性)。
增强的 DLL 支持(在进程边界之间传递对象)。
增强的多线程支持。
增强的符合标准性。
有关标准 C++ 库中的最新更改的信息。
旧 iostream 库
对于 Visual C++,不赞成对旧 iostream 库的使用;每次使用 iostream 函数时,就会给出一个警告。在以后的版本中,可能会移除旧的 iostream 库。

0

主题

12

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2005-6-24 18:03:00 | 显示全部楼层

Re:[入门级问题]VC 6 和 VC 7的选择

VC++ .NET Std 2003 Win32 English AE CD        59.95         Single User License        Academic        Applications        Standard

VStudio .NET Pro 2003 Win32 English AE CD        99.95         Single User License        Academic        Applications        Standard

24

主题

94

帖子

96

积分

注册会员

Rank: 2

积分
96
 楼主| 发表于 2005-6-27 16:20:00 | 显示全部楼层

Re:[入门级问题]VC 6 和 VC 7的选择

感到落伍了呢,目前继续用VC6昨晚当前的东西,下一个即将考虑改成VC7了

不过。。。。。。

是否能够轻易的转过去呢?是否有需要修改的地方?可否提示,或者参考一下什么资料呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-6 17:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表