vs2010打开vs2012项目中的C++每个项目中是不是每次都同时运行该项目中的所有文件

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
空间积分0 信誉积分54 UID阅读权限10积分45帖子精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
论坛徽章:0
在VS2010中的C++模块,我写了如下程序(简单还原):
第一步:& & 设定constant.cpp文件,用来定义一些全局变量和自定义函数;
第二步:& & 设定headline.h文件,用来声明在constant.cpp中定义的全局变量和自定义函数,同时定义了一些宏(类如PI);
第三步:& & 设定main.cpp文件,作为整个项目的主函数——int main();
第四步:& & 设定initial.cpp文件,作为整个项目的次函数1——void main();
第五步:& & 设定force.cpp文件,作为整个项目的次函数2——void force();
第六步:& & 设定integrate.cpp文件,作为整个项目的次函数3——void integrate();
备注:在main.cpp、initial.cpp、orce.cpp、ntegrate.cpp等四个源文件中同时include &headline.h&,经过编译,发现程序进入main()主函数之后,并没有编译initial、force和integrate等次函数;问了同学,得知需要为initial.cpp、force.cpp和integrate.cpp文件分别设置相应的头文件,于是我照做了:
第七步:& & 设定initial.h文件:
& && && && && && && && && && && && && && && && && && &#pragma once
& && && && && && && && && && && && && && && && && && &void initial();
第八步:& & 设定force.h文件:
& && && && && && && && && && && && && && && && && &&&#pragma once
& && && && && && && && && && && && && && && && && &&&void force();
第九步:& & 设定integrate.h文件:
& && && && && && && && && && && && && && && && && & #pragma once
& && && && && && && && && && && && && && && && && & void integrate();
备注:经过第七、八、九步的设定,再经过编译,发现程序进入main()主函数之后,仍然没有编译initial、force和integrate等次函数,不知道怎么解决这个问题——也就是同一项目文件下,如何在编译main函数之后,顺序编译其余cpp文件;
15:10 上传
这个就是我的项目文件
15:11 上传
这个是我设定的initial.h文件,而force.h和integrate.h都是这样做的。
请懂这些的高人帮我解答一下疑惑,楼主在此就先谢谢各位了!!!
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
空间积分0 信誉积分54 UID阅读权限10积分45帖子精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
论坛徽章:0
怎么没有人给我解答一下吗?都好几天了,这个问题一直都没有解决啊!
空间积分0 信誉积分1293 UID阅读权限30积分1763帖子精华可用积分1785 专家积分10 在线时间1557 小时注册时间最后登录
家境小康, 积分 1763, 距离下一级还需 237 积分
帖子主题精华可用积分1785 专家积分10 在线时间1557 小时注册时间最后登录
论坛徽章:7
编译顺序对结果并没有影响,要考虑编译顺序毛用?
你说,“发现程序进入main()主函数之后,并没有编译initial、force和integrate等次函数”,你又是怎么发现的?
还有一个int main,另外又有一个void main,难道没有链接错误?
总之你问的问题其本身就是一个大问题,你不先把自己的问题解决了,别人也没法帮你解决问题。
空间积分0 信誉积分54 UID阅读权限10积分45帖子精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
论坛徽章:0
我的问题主要是,在同一个项目(Program AuNP-DNA)下,编写了四个源文件(main.cpp、initial.cpp、force.cpp和integrate.cpp),分别对应着四个函数(int main()、void initial()、void force()和void integrate()),为了检查程序的编译情况,我在main.cpp、initial.cpp、force.cpp和integrate.cpp文件的头一句分别写了一个输出语句(例如printf(&This location is dangerous !!!\n&quot,可是编译的时候,只输出了main.cpp中的printf语句,而其余cpp文件中的printf语句根本就没有输出,显然程序就没有被完全编译,现在主要是问这个问题如何解决。
空间积分0 信誉积分1293 UID阅读权限30积分1763帖子精华可用积分1785 专家积分10 在线时间1557 小时注册时间最后登录
家境小康, 积分 1763, 距离下一级还需 237 积分
帖子主题精华可用积分1785 专家积分10 在线时间1557 小时注册时间最后登录
论坛徽章:7
编译和执行能是一个意思吗?
空间积分0 信誉积分54 UID阅读权限10积分45帖子精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
论坛徽章:0
亲,能否说得直白些,这个问题到底应该如何解决呢?我是菜鸟级,还望多多帮忙,谢谢!!!
空间积分0 信誉积分1293 UID阅读权限30积分1763帖子精华可用积分1785 专家积分10 在线时间1557 小时注册时间最后登录
家境小康, 积分 1763, 距离下一级还需 237 积分
帖子主题精华可用积分1785 专家积分10 在线时间1557 小时注册时间最后登录
论坛徽章:7
C/C++中程序的入口是main函数,其他函数如果没有被main直接或者间接的调用到,即使编译进去了也不会执行。既然不会执行,又怎么会打印出信息呢?
所以从根本上说,你的需求就是一个伪命题,是不可能解决的。
空间积分0 信誉积分1293 UID阅读权限30积分1763帖子精华可用积分1785 专家积分10 在线时间1557 小时注册时间最后登录
家境小康, 积分 1763, 距离下一级还需 237 积分
帖子主题精华可用积分1785 专家积分10 在线时间1557 小时注册时间最后登录
论坛徽章:7
如果你换一个问法,如何才能让在不同的CPP中的几个函数都能够被执行到,那么可以回答在main里面找个地方调用那些在其他CPP中定义的函数(当然main之前需要声明)就行了。
但是你现在这个问题,根本就是伪命题,就像问“为什么我每天跟女朋友ML,她都不会怀孕啊?难道跟她容易漏气有关吗?怎样才能让她怀孕啊?”一样,根本没问到“点”上。
空间积分0 信誉积分54 UID阅读权限10积分45帖子精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
论坛徽章:0
好吧{:3_196:} 算我没问到点子上,不过还是多谢你的点评,问题已经解决了。
空间积分0 信誉积分54 UID阅读权限10积分45帖子精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 专家积分0 在线时间16 小时注册时间最后登录
论坛徽章:0
        我自己编写的main.cpp源文件如下:
int main()
        ……………………………………
        void initial();
        for(t=0;t&=T_MAX;t=t+DELTAT)
        {
                void force();
                void integrate();
        }
        ……………………………………
        由于main()函数中需要调用initial.cpp、force.cpp和integrate.cpp源文件中相应的initial()、force()、integrate()函数,由于我的函数类型均定义为void类型,所以在编译main()函数时,程序没有编译void initial()、void force()、void integrate()这三个语句;
        我修改之后的main.cpp源文件如下:
int main()
        ……………………………………
        initial();
        for(t=0;t&=T_MAX;t=t+DELTAT)
        {
                force();
                integrate();
        }
        ……………………………………
        如果我将这三个语句之前的函数类型void去掉的话,程序就不会出现不编译的情况了。问题已经解决了,谢谢大家!
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处等 级:版主
威 望:226
帖 子:19427
专家分:37639
Visual C++ 中的重大更改&&
此文档列出了 Visual C++ 2010 中的重大更改。
Visual C++ 编译器
--------------------------------------------------------------------------------
auto 关键字具有新的默认含义。
由于使用旧含义的情况很少见,因此大多数应用程序都不会受此更改影响。
引入了新的 static_assert 关键字,如果代码中已经存在具有某个名称的标识符,则此关键字将导致名称冲突。
对新 lambda 表示法的支持不支持对 IDL uuid 特性中未加引号的 GUID 进行编码。
.NET Framework 4 引入了损坏状态异常概念,这些异常会导致进程处于无法恢复的损坏状态。
默认情况下,即使使用捕获所有其他异常的 /EHa 编译器选项,也无法捕获损坏状态异常。
若要显式捕获损坏的状态异常,请使用 __try-__except 语句。
或者,应用 [HandledProcessCorruptedStateExceptions] 特性以允许使用函数捕获损坏状态异常。
此更改主要影响可能必须捕获损坏状态异常的系统程序员。
八个此类异常为 STATUS_ACCESS_VIOLATION、STATUS_STACK_OVERFLOW、EXCEPTION_ILLEGAL_INSTRUCTION、EXCEPTION_IN_PAGE_ERROR、EXCEPTION_INVALID_DISPOSITION、EXCEPTION_NONCONTINUABLE_EXCEPTION、EXCEPTION_PRIV_INSTRUCTION 和 STATUS_UNWIND_CONSOLIDATE。
有关这些异常的更多信息,请参见 GetExceptionCode 宏。
修改后的 /GS 编译器选项可防止此版本中的缓冲区溢出比早期版本中的更广泛。
此版本可能会在可降低性能的堆栈中插入附加的安全检查。
使用新 __declspec(safebuffers) 关键字可指示编译器不对特定函数插入安全检查。
如果使用 /GL(全程序优化)和 /clr(公共语言运行时编译)编译器选项进行编译,则忽略 /GL 选项。
进行此更改是因为组合使用编译器选项没有什么优点。
进行此更改后,生成的性能得到了改进。
默认情况下,在 Visual C++ 2010 中禁用对 三字符组的支持。
使用 /Zc:trigraphs 编译器选项可启用三字符组支持。
三字符组由两个连续的问号(“??”)及后跟的第三个唯一字符组成。
编译器会将三字符组替换为相应的标点字符。
例如,编译器会将“??=”三字符组替换为“#”字符。
对于使用的字符集未包含某些标点字符的便捷图形表示形式的 C 源文件,可在其中使用三字符组。
链接器不再支持对 Windows 98 进行优化。
如果指定 /OPT:WIN98 或 /OPT:NOWIN98,则 /OPT(优化)选项将会产生编译时错误。
由 “RuntimeLibrary”和 “DebugInformationFormat”生成系统属性指定的默认编译器选项已发生更改。
默认情况下,这些生成属性是在由 Visual C++ 7.0 至 10.0 版创建的项目中指定的。如果迁移由 Visual C++ 6.0 创建的项目,则应考虑是否指定这些属性的值。
在 Visual C++ 2010 中, “RuntimeLibrary”设置为 “MultiThreaded (/MD)”, “DebugInformationFormat”设置为 “ProgramDatabase (/Zi)”。
在 Visual C++ 9.0 中, “RuntimeLibrary”设置为 “MultiThreaded (/MT)”, “DebugInformationFormat”设置为 “Disabled”。
公共语言运行时 (CLR)
--------------------------------------------------------------------------------
Microsoft C# 和 Visual Basic 编译器现在可以生成“非主互操作程序集”(非 PIA)。
非 PIA 程序集可以使用 COM 类型而无须部署相关主互操作程序集 (PIA)。
使用由 Visual C# 或 Visual Basic 生成的非 PIA 程序集时,在引用使用库的任何非 PIA 程序集之前,必须在编译命令中引用 PIA 程序集。
Visual C++ 项目和 MSBuild
--------------------------------------------------------------------------------
Visual C++ 项目现在基于 MSBuild 工具。
因此,项目文件会使用新 XML 文件格式和 .vcxproj 文件后缀。
Visual C++ 2010 会自动将项目文件从 Visual Studio 早期版本转换为新文件格式。
如果某个现有项目依赖于先前的生成工具 VCBUILD.exe 或项目文件后缀 .vcproj,该项目将受影响。
在早期版本中,Visual C++ 支持属性表的后期计算。
例如,父属性表可以导入子属性表,然后父属性表可以使用子属性表中定义的变量来定义其他变量。
利用后期计算,即使在导入子属性表之前,父属性表也可以使用子变量。
在 Visual C++ 2010 中,不能在定义项目表变量之前使用该变量,因为 MSBuild 仅支持早期计算。
集成开发环境
--------------------------------------------------------------------------------
“应用程序终止”对话框不再终止应用程序。
在以前的版本中,当 abort() 或 terminate() 函数关闭应用程序的零售内部版本时,C 运行库将在控制台窗口或对话框中显示应用程序终止消息。
该消息的部分内容为,“此应用程序已请求运行时以异常方式终止它。
请与应用程序技术支持团队联系,以便获得更多信息。”
应用程序终止消息是多余的,因为 Windows 随后显示了当前终止处理程序,它通常是“Windows 错误报告”(Dr.
Watson) 对话框或 Visual Studio 调试器。
从 Visual Studio 2010 开始,C 运行库将不显示该消息。
而且,运行时还将阻止应用程序在调试器启动前终止。
仅当您依赖于应用程序终止消息的以前行为时,才会进行此重大更改。
对于 Visual Studio 2010 具体而言,IntelliSense 无法用于 C++/CLI 代码或特性, “查找所有引用”无法用于本地变量,且代码模型不会从导入的程序集检索类型名称或者将类型解析为其完全限定名。
Visual C++ 库
--------------------------------------------------------------------------------
SafeInt 类现在包括在 Visual C++ 中,不再需要单独下载。
仅当您开发了一个也称为“SafeInt”的类时,才会进行此重大更改。
库部署模型会再次使用清单来查找特定版本的动态链接库。
实际上,每个动态链接库的名称包含其版本号,您可以使用该名称查找库。
有关更多信息,请参见 Visual C++ 2010 中的部署。
在 Visual Studio 的早期版本中,可以重新生成运行库。
Visual C++ 2010 不再支持生成您自己的 C 运行库文件的副本。
标准模板库
&iterator& 标头不再自动包含在许多其他头文件中。
但是,如果您需要 &interator& 标头中定义的独立迭代器支持,则会显式包含该标头。
在 &algorithm& 标头中,移除了 checked_* 和 unchecked_* 函数。
此外还在 &iterator& 标头中,移除了 checked_iterator 类并增加了 unchecked_array_iterator 类。
移除了 CComPtr::CComPtr(int) 构造函数。
该构造函数允许从 NULL 宏构造 CComPtr 对象,但不是必需的,还允许从非零整数构造无意义结构。
CComPtr 仍可从定义为 0 的 NULL 进行构造,但如果从文本 0 以外的整数构造,则会失败。
您最可能在以下伪代码描述的情况中遇到此问题。
以带有颜色区分的格式查看复制到剪贴板打印pair&X, CComPtr&T&& myV
&&myVar = make_pair(x, NULL);
pair&X, CComPtr&T&& myV
myVar = make_pair(x, NULL);
若要修复第二个语句,请使用 nullptr 关键字来替代 NULL 宏。
以带有颜色区分的格式查看复制到剪贴板打印myVar = make_pair(x, nullptr)
myVar = make_pair(x, nullptr)
移除了以下 ctype 成员函数: ctype::_Do_narrow_s、 ctype::_Do_widen_s、 ctype::_narrow_s 和 ctype::_widen_s。
如果应用程序使用上述任一成员函数,则必须将其替换为对应的非安全版本: ctype::do_narrow、 ctype::do_widen、 ctype::narrow 或 ctype::widen。
CRT、MFC 和 ATL 库
已移除用户支持,以生成 CRT、MFC 和 ATL 库。
例如,未提供相应的 nmake 文件。
但是,用户仍对这些库的源代码具有访问权限。
并且将可能在 Visual C++ 团队博客中发表一篇文档,其中描述 Microsoft 用来生成这些库的 MSBuild 选项。
已移除对 IA64 的 MFC 支持。
但是,仍提供对 IA64 的 CRT 和 ATL 支持。
MFC 模块定义 (.def) 文件中不再重用序号。
此更改意味着,次要版本间的序号将相同,且 Service Pack 和快速修补工程版本的二进制兼容性将得到改进。
CDocTemplate 类中添加了一个新的虚函数。
这一新的虚函数为 CDocTemplate::OpenDocumentFile。
OpenDocumentFile 的早期版本具有两个参数。
而新版本具有三个参数。
若要支持重新启动管理器,派生自 CDocTemplate 的任何类都必须实现具有三个参数的版本。
有关此函数的更多信息,请参见 CDocTemplate::OpenDocumentFile。
新参数为 bAddToMRU。
宏和环境变量
不再支持环境变量 __MSVCRT_HEAP_SELECT。
已移除此环境变量,且没有替换变量。
Microsoft Macro Assembler Reference
--------------------------------------------------------------------------------
从 Microsoft Macro Assembler 编译器中移除了多个指令。
移除的指令包括 .186、 .286、 .286P、 .287、 .8086、 .8087 和 .NO87。
授人以渔,不授人以鱼。
等 级:版主
威 望:226
帖 子:19427
专家分:37639
.NET Framework 4 中的新增功能&&
本主题包含有关 .NET Framework 4 版中的主要功能和改进的信息。
此主题不提供有关所有新增功能的完整信息,并有可能会发生更改。
.NET Framework 4 引进了改进的安全模式。
有关更多信息,请参见 .NET Framework 4 中的安全性更改。
以下各节介绍了 .NET Framework 4 的其它新增功能和改进:
应用程序兼容性和部署
核心新增功能和改进
Managed Extensibility Framework
Windows Communication Foundation
Windows Workflow Foundation
有关添加到现有类型中的新命名空间、新类型和新成员的列表,请参见 .NET Framework 4 中的新增类型和成员。
Visual Studio 2010 Service Pack 1 (SP1) 包含对 .NET Framework 4 的 更新。
应用程序兼容性和部署
--------------------------------------------------------------------------------
.NET Framework 4 与使用 .NET Framework 早期版本生成的应用程序有很高的兼容性,除了提高安全性、标准遵从性、正确性、可靠性和性能所做的一些更改之外。
.NET Framework 4 不能自动使用自己的公共语言运行时版本来运行由 .NET Framework 早期版本生成的应用程序。
若要使用 .NET Framework 4 运行较早的应用程序,则必须使用 Visual Studio 中项目的属性指定的目标 .NET Framework 版本编译应用程序, 或使用应用程序配置文件中的 &supportedRuntime& 元素 可指定所支持的运行时。
如果安装 .NET Framework 4 后,您的应用程序或组件无法运行,请在 Microsoft Connect 网站上提交 bug。
您可以按照 .NET Framework 4 Application Compatibility(.NET Framework 4 应用程序兼容性)主题中的描述测试兼容性,并通过 Visual Studio 2010 and .NET Framework 4 Walkthroughs(Visual Studio 2010 和 .NET Framework 4 演练)来了解新增功能。
有关迁移到 .NET Framework 4 的指南,请参见 .NET Framework 4 的迁移指南和 .NET Framework 的版本兼容性。
以下各节介绍了部署改进。
Client Profile
.NET Framework 4 Client Profile 比以前的版本支持更多平台,并可提供应用程序的快速部署体验。
默认情况下,一些新增的项目模板现在以 .NET Framework 4 Client Profile 为目标。
有关更多信息,请参见 .NET Framework Client Profile。
进程内并行执行
此功能使应用程序能够在同一个进程中加载和启动多个版本的 .NET Framework。
例如,您可以运行在同一进程中加载基于 .NET Framework 2.0 SP1 的外接程序(或组件)和基于 .NET Framework 4 的外接程序的应用程序。
较旧组件可继续使用 .NET Framework 的较旧版本,新组件则使用 .NET Framework 的新版本。
有关更多信息,请参见 进程内并行执行。
可移植类库
安装 Visual Studio 2010 Service Pack 1 (SP1) 和 Portable Library Tools 后,您可创建不必重新编译即可在各种 .NET Framework 平台上运行的可移植类库。
有关更多信息,请参见 可移植类库。
核心新增功能和改进
--------------------------------------------------------------------------------
以下各节介绍公共语言运行时和基类库提供的新增功能和改进。
诊断和性能
.NET Framework 的早期版本没有提供用于确定特定应用程序域是否影响其他应用程序域的方法,因为操作系统 API 和工具(例如,Windows 任务管理器)仅精确到进程级别。
从 .NET Framework 4 开始,您可以获得每个应用程序域的处理器使用情况和内存使用情况估计值。
可监控各个应用程序域对 CPU 和内存的使用情况。
通过托管承载 API、本机承载 API 以及 Windows 事件跟踪 (ETW),可提供应用程序域资源监控。
在启用此功能后,将在进程的生存期内收集有关进程中所有应用程序域的统计信息。
请参见新增的 AppDomain.MonitoringIsEnabled 属性。
您现在可以访问 ETW 事件以用于诊断目的,从而改进性能。
有关更多信息,请参见 CLR ETW 事件和 控制 .NET Framework 日志记录。
另外,请参见 性能计数器和进程内并行应用程序。
System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute 特性使托管代码能够处理指示损坏进程状态的异常。
.NET Framework 4 提供了新的非特定和特定区域性、更新的属性值、字符串处理的改进以及其他一些改进。
有关更多信息,请参见 全球化和本地化中的新增功能。
.NET Framework 4 提供背景垃圾回收。
此功能替代了以前版本中的并发垃圾回收并提高了性能。
有关更多信息,请参见 垃圾回收的基础。
代码协定允许您指定方法或类型的签名没有单独表示的协定信息。
新的 System.Diagnostics.Contracts 命名空间包含的类可提供一种与语言无关的方式以前置条件、后置条件和对象固定的形式来表示编码假设。
这些协定利用运行时检查改进了测试,启用了静态协定验证并支持文档生成。
有关更多信息,请参见 代码协定。
仅用于设计时的互操作程序集
您不必再提供主互操作程序集 (PIA),即可部署与 COM 对象进行交互的应用程序。
在 .NET Framework 4 中,编译器可以嵌入互操作程序集中的类型信息,仅选择应用程序(如外接程序)实际使用的类型。
由公共语言运行时确保类型安全。
请参见 在托管代码中使用 COM 类型和 演练:嵌入 Microsoft Office 程序集中的类型信息(C# 和 Visual Basic)。
动态语言运行时
动态语言运行时 (DLR) 是一种新运行时环境,它将一组适用于动态语言的服务添加到 CLR。
借助于 DLR,可以更轻松地开发要在 .NET Framework 上运行的动态语言,而且向静态类型化语言添加动态功能也会更容易。
为了支持 DLR,在 .NET Framework 中添加了新 System.Dynamic 命名空间。
表达式树由表示控制流的新类型(如 System.Linq.Expressions.LoopExpression 和 System.Linq.Expressions.TryExpression )进行了扩展。
动态语言运行时 (DLR) 将使用这些新增类型,而 LINQ 不会使用。
此外, pilerServices 命名空间中还添加了多个支持 .NET Framework 基础结构的新类。
有关更多信息,请参见 动态语言运行时概述。
协变和逆变
现在,有多个泛型接口和委托支持协变和逆变。
有关更多信息,请参见 泛型中的协变和逆变。
BigInteger 和复数
新的 System.Numerics.BigInteger 结构是一个任意精度 Integer 数据类型,它支持所有标准整数运算(包括位操作)。
可以通过任何 .NET Framework 语言使用该结构。
此外,一些新 .NET Framework 语言(例如 F# 和 IronPython)对此结构具有内置支持。
新的 plex 结构表示一个复数,它支持使用复数的算术运算和三角运算。
.NET Framework 4 提供了用于创建包含结构化数据的元组对象的 System.Tuple 类。
它还提供了泛型元组类以支持具有 1 到 8 个组件的元组(即,从单一实例到八元组)。
为了支持具有 9 个或更多组件的元组对象,提供了一个具有 7 个类型参数和任何元组类型的第 8 个参数的泛型元组类。
文件系统枚举改进
新的文件枚举方法可以提高访问大文件目录或循环访问大文件中的行的应用程序的性能。
有关更多信息,请参见 如何:枚举目录和文件。
内存映射文件
.NET Framework 现在支持 内存映射文件。
可以使用内存映射文件编辑非常大的文件和创建共享内存以进行进程间通信。
64 位操作系统和进程
使用 Environment.Is64BitOperatingSystem 和 Environment.Is64BitProcess 属性可以标识 64 位操作系统和进程。
打开基项时,可以使用 Microsoft.Win32.RegistryView 枚举指定 32 位或 64 位注册表视图。
其他新增功能
以下列表介绍其他新增功能、改进和便利。
其中的几个功能是根据客户建议增加的。
为了支持区分区域性的格式设置, System.TimeSpan 结构包含了 ToString、 Parse 和 TryParse 方法的新重载,以及新的 ParseExact 和 TryParseExact 方法。
新的 String.IsNullOrWhiteSpace 方法指示字符串是否为 null、为空或仅包含空白字符。
已向 String.Concat 和 String.Join 方法添加了可以连接 System.Collections.Generic.IEnumerable&T&集合的成员的新重载。
您可以使用 String.Concat 方法将可枚举集合中的每个元素连接在一起,而无需先将元素转换成字符串。
可以使用的两种新的简便方法是: StringBuilder.Clear 和 Stopwatch.Restart 。
新的 Enum.HasFlag 方法确定在某个枚举值中是否设置了一个或多个位域或标志。
Enum.TryParse 方法返回一个布尔值,指示能否成功分析字符串或整数值。
System.Environment.SpecialFolder 枚举包含多个新文件夹。
现在可以使用从 System.IO.Stream 类继承的类中的 CopyTo 方法轻松地将一个流复制到另一个流中。
使用新的 bine 方法重载可组合文件路径。
新的 System.IObservable&T&和 System.IObserver&T&接口为基于推送的通知提供通用机制。
System.IntPtr 和 System.UIntPtr 类现在包括对加法运算符和减法运算符的支持。
现在可以通过将类型包装在 System.Lazy&T&类内部,为任何自定义类型启用迟缓初始化。
新的 System.Collections.Generic.SortedSet&T&类提供了一个按插入、删除和搜索后的排序顺序维护数据的自平衡树。
此类可实现新的 System.Collections.Generic.ISet&T&接口。
pression.DeflateStream 和 pression.GZipStream 类的压缩算法得到了改进,以便不再扩充已压缩的数据。
此外,还移除了压缩流的 4 GB 大小限制。
新的 Monitor.Enter(Object, Boolean) 方法重载采用布尔值引用,并仅在成功进入监视器时才自动将其设置为 true。
可以使用 Thread.Yield 方法让调用线程执行准备好在当前处理器上运行的另一个线程。
System.Guid 结构现在包含 TryParse 和 TryParseExact 方法。
新的 Microsoft.Win32.RegistryOptions 枚举可用于指定计算机重新启动后不保留的可变注册表项。
注册表项不再受限于 255 个字符的最大长度。
Managed Extensibility Framework
--------------------------------------------------------------------------------
Managed Extensibility Framework (MEF) 是 .NET Framework 4 中的一个新库,可帮助您生成可扩展和可组合的应用程序。
使用 MEF 可指定可以扩展应用程序的位置,公开要提供给其他可扩展应用程序的服务并创建供可扩展应用程序使用的部件。
MEF 还可以基于元数据启用可用部件的便捷发现功能,而无需加载部件的程序集。
有关更多信息,请参见 Managed Extensibility Framework 概述和 Managed Extensibility Framework。
有关 MEF 类型的列表,请参见 position 命名空间。
--------------------------------------------------------------------------------
.NET Framework 4 引入了用于编写多线程和异步代码的新编程模型,极大地简化了应用程序和库开发人员的工作。
该新模型使开发人员可以通过固有方法编写高效、细化且可伸缩的并行代码,而不必直接处理线程或线程池。
新的 System.Threading.Tasks 命名空间和其他相关类型支持此新模型。
并行 LINQ (PLINQ) 是 LINQ to Objects 的并行实现,能够通过声明性语法实现类似功能。
有关更多信息,请参见 .NET Framework 中的并行编程。
--------------------------------------------------------------------------------
网络改进包含以下几个方面:
若干类中对于 Windows 身份验证的安全改进,包括 System.Net.HttpWebRequest 、 System.Net.HttpListener 、 System.Net.Mail.SmtpClient 、 System.Net.Security.SslStream 和 System.Net.Security.NegotiateStream 。
对于 Windows 7 和 Windows Server 2008 R2 上的应用程序提供了扩展保护。
有关更多信息,请参见 Integrated Windows Authentication with Extended Protection。
支持使用 IPv6 或 Teredo 的网络地址转换 (NAT) 遍历。
有关更多信息,请参见 NAT Traversal using IPv6 and Teredo。
提供有关 HttpWebRequest 对象的信息的新的网络性能计数器。
有关更多信息,请参见 联网性能计数器。
在 System.Net.HttpWebRequest 类中,支持在 AddRange 方法的新重载中使用大字节范围标头(64 位范围)。
System.Net.HttpWebRequest 类的新属性允许应用程序设置很多 HTTP 标头。
可使用 Host 属性设置 HTTP 请求中独立于请求 URI 的 Host 标头值。
对于 System.Net.Mail.SmtpClient 和相关类的安全套接字层 (SSL) 支持。
改进了对 System.Net.Mail.MailMessage 类中的邮件标头的支持。
对在加密中使用 null 密码的支持。
可以通过使用 System.Net.ServicePointManager 类和 EncryptionPolicy 属性指定加密策略。
System.Net.Security.SslStream 类的构造函数现在采用 System.Net.Security.EncryptionPolicy 类作为参数。
System.Net.NetworkCredential 类中提供了用于基于密码的身份验证方案(例如基本、摘要、NTLM 和 Kerberos 身份验证)的凭据。
为了提高安全性,现在可将密码作为 System.Security.SecureString 实例而不是 System.String 实例进行处理。
在 System.Uri 和 System.Net.HttpListener 类中指定如何转换和规范化使用百分号编码值的 URI 能力。
有关更多信息,请参见 System.Net.Configuration.HttpListenerElement 、 System.Configuration.SchemeSettingElement 、 System.Configuration.SchemeSettingElementCollection 和 System.Configuration.UriSection 类。
--------------------------------------------------------------------------------
ASP.NET 4 版在以下几个方面引入了新功能:
核心服务,包括可用来扩展缓存的新 API、支持对会话状态的数据进行压缩以及新的应用程序预加载管理器(自动启动功能)。
Web 窗体,包括对 ASP.NET 路由的更集中化支持、对 Web 标准的增强支持、更新的浏览器支持、数据控件的新功能以及视图状态管理的新功能。
Web 窗体控件,包括新的 Chart 控件。
MVC,包括视图的新帮助器方法、对分区的 MVC 应用程序的支持以及异步控制器。
动态数据,包括对现有 Web 应用程序的支持、对多对多关系和继承的支持、新的字段模板和特性以及增强的数据筛选。
Microsoft Ajax,包括对 Microsoft Ajax 库中的基于客户端的 Ajax 应用程序的附加支持。
Visual Web Developer,包括改进的 JScript IntelliSense、针对 HTML 和 ASP.NET 标记的新的自动完成代码段和增强的 CSS 兼容性。
部署,包括用于自动化典型部署任务的新工具。
多目标,包括针对目标版本的 .NET Framework 中未提供的功能的更好的筛选功能。
有关这些功能的更多信息,请参见 ASP.NET 4 和 Visual Web Developer 中的新增功能。
--------------------------------------------------------------------------------
Windows Presentation Foundation (WPF) 版本 4 包含以下方面的更改和改进:
新控件,包括 Calendar、 DataGrid 和 DatePicker。
VisualStateManager 支持更改控件的状态。
利用触控和操作,您可以创建在 Windows 7 上同时接收来自多个触控的输入的应用程序。
图形和动画支持布局舍入、像素着色器版本 3.0、缓存合成和缓动函数。
文本改进了文本呈现,并支持在文本框中自定义插入符号的颜色和选定内容的颜色。
InputBinding 的 Command 属性、动态对象和 Text 属性支持绑定。
XAML 浏览器应用程序 (XBAP) 支持与网页通信,并且支持完全信任部署。
利用 System.Windows.Shell 命名空间中新增的类型,您能够与 Windows 7 任务栏通信,还能将数据传递到 Windows shell。
Visual Studio 2010 中的 WPF 和 Silverlight 设计器中提供了各种设计器改进,有助于创建 WPF 或 Silverlight 应用程序。
有关更多信息,请参见 WPF 版本 4 的新增功能。
--------------------------------------------------------------------------------
ADO.NET 提供了一些用于 Entity Framework 的新功能,其中包括持久性未知对象、LINQ 查询中的函数以及自定义对象层代码生成。
有关更多信息,请参见 ADO.NET 中的新增功能。
ASP.NET 4 的动态数据得到了增强,为您提供快速生成数据驱动网站的更强大功能。
基于数据模型中定义的约束的自动验证。
可以使用属于动态数据项目一部分的字段模板轻松更改为 GridView 和 DetailsView 控件中的字段生成的标记。
有关更多信息,请参见 ASP.NET 4 和 Visual Web Developer 中的新增功能。
WCF Data Services — WCF 数据服务
ADO.NET 数据服务已重命名为“WCF 数据服务”,它具有以下新功能:
数据绑定。
计算实体集中的实体数。
服务器驱动的分页。
查询投影。
自定义数据服务提供程序。
二进制资源的流式处理。
有关更多信息,请参见 What's New in WCF Data Services。
Windows Communication Foundation
--------------------------------------------------------------------------------
Windows Communication Foundation (WCF) 提供以下改进:
基于配置的激活:取消了对具有 .svc 文件的要求。
System.Web.Routing 集成:通过允许使用无扩展 URL,使您能更好地控制服务的 URL。
多个 IIS 网站绑定支持:允许您在同一网站上具有多个使用相同协议的基址。
路由服务:允许您基于内容路由消息。
支持 WS-Discovery:允许您创建和搜索可发现服务。
标准终结点:预定义的终结点,可允许您只指定某些属性。
工作流服务:通过提供用于发送和接收消息的活动、基于内容关联消息的功能以及工作流服务主机来集成 WCF 和 WF。
WCF REST 功能:
Web HTTP 缓存:允许缓存 Web HTTP 服务响应。
Web HTTP 格式支持:允许您动态确定服务操作做出响应的最佳格式。
Web HTTP 服务帮助页:提供 Web HTTP 服务的自动帮助页,此页与 WCF 服务帮助页类似。
Web HTTP 错误处理:允许 Web HTTP 服务以与操作相同的格式返回错误信息。
Web HTTP 跨域 JavaScript 支持:允许使用 JSON Padding (JSONP)。
简化配置:减少了服务所需的配置量
有关更多信息,请参见 What's New in Windows Communication Foundation。
Windows Workflow Foundation
--------------------------------------------------------------------------------
Windows Workflow Foundation (WF) 提供以下方面的改进:
改进的工作流活动模型: Activity 类提供工作流行为的基本抽象。
各种复合活动选项:工作流可从以传统的流控制结构为模型的新建流控制活动(如 Flowchart、 TryCatch 和 Switch&T&)受益。
扩展的内置活动库:活动库的新增功能包括新的流控制活动、用于操作成员数据的活动以及用于控制事务的活动。
显式活动数据模型:用于存储或移动数据的新增选项包括变量和方向参数。
增强的宿主、持久性和跟踪选项:宿主增强包括更多的运行工作流选项,使用 Persist 活动的显式保持,保持而不进行卸载,使用非持久区域阻止保持,使用宿主中的环境事务,将跟踪信息记录到事件日志,以及使用 Bookmark 对象继续挂起的工作流。
更简单的 WF 设计器扩展功能:新的 WF 设计器是基于 Windows Presentation Foundation (WPF) 构建的,提供了一个可在 Visual Studio 外部重新承载 WF 设计器时使用的更简单的模型。
有关更多信息,请参见 What's New in Windows Workflow Foundation。
授人以渔,不授人以鱼。
等 级:论坛游民
帖 子:30
专家分:51
这分享给力。。
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
咦 怎么现在才注意到 很好的资讯
                                                       
来 自:太平洋
等 级:职业侠客
帖 子:220
专家分:310
当我们还是菜鸟时,是不会去弄那么高深的进化版,哈哈,我去看了下VS2010,这么大,吓死了。
从来都是无所谓,现在也该学着有所谓。✿咱们一个人,别坐井观天❀
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
回复 6楼 罗庇鹏ksq
哈哈 一个软件而已&&有点空间加点时间 就能搞定 不是很难得事情。
                                                       
等 级:黑侠
帖 子:392
专家分:554
如果有人能在网上搞到微软的东西(免费的那种)十之八九是d版
正斑的买不起几千一个我虽然也想用d版,但是我觉得那些都不是真正的纯种编译器gcc 和lccwin-32,开源,自由,不存在什么样的d版问题
lccwin-32只有7.04mk
你到LCC的主页下载吧,那里的肯定是最新的.
回复 收起回复
17楼 08:29举报 |
我也说一句
159.226.67.* http://www.cs.virginia.edu/~lcc-win32/
这是LCC的官方网站.
等 级:黑侠
帖 子:392
专家分:554
去看看,灰常拽的东西,黄色的内底,黑色的字
lcc-win: A Compiler system for windows
by Jacob Navia
based on the original screenplay of
Dave Hanson and Chris Fraser: A portable C compiler
版权所有,并保留所有权利。
Powered by , Processed in 0.032397 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved

我要回帖

更多关于 vs2008打开vs2010项目 的文章

 

随机推荐