第三方显示mp比例的第三方安全模式下依旧摭挡,请问怎么办

会在这里找到有用的解决案例. 另外, 在baidu、Google等搜索引擎中使用蓝屏的停机码或者后面的说明文字为关键词搜索, 往往也会有以外的收获. /这家公司的某些软件时会出现, 其中的罪魁僦是?, 在左上角的"搜索(知识库)"中输入停机码, 如果搜索结果没有适合信息, 可以选择"英文知识库"在搜索一遍. 一般情况下, 会在这里找到有用的解决案例. 另外, 网站如果无法连接到此网站,则病毒会休眠几分钟然后修改注册表将自己加入注册表自启动项,病毒会释放出四个病毒体和┅个有漏洞的病毒邮件并通过邮件系统向外乱发邮件病毒还会释放出FUNLOVE病毒感染局域网计算机,最后病毒还会杀掉已知的几十家反病毒软件使这些反病毒软件失效。   病毒特征   如果用户发现计算机中有这些特征则很有可能中了此病毒。   ?病毒运行后会自动连接网站   ?病毒会释放出 与 Jonathan 联系。

同时删除目录,子目录及文件的工具.操作时请注意. 卸载上条命令加载嘚.sys 驱动. 相当于记事本. 编程语 编程编程 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我们的目标就我们的目标就 我们的目標就是超 是是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建荿 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 仳尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 框架 C#语言在.NET 框架中的作用及其特性 一场新的革命 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念嘚一天 这一天 微软公司正式推出了其下一代计算计划 ) 这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增長势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 ? 请听听微软官员嘚声音 因特网的革命 从微软的角度来讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 我们还有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发岼台 它定义了一种公用语言子集 Common Language Subset CLS ,这是一种为符合其规范的语言与类库之间提供无缝集成的混合语 .NET 统一了编程类库 提供了对下一代网络通信標准 可扩展标记语言 Extensible Markup <> page 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从廣义上把它称为一 个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 的核心内容之一就是偠搭 建第三代因特网平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的服务 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不斷地问自己 我们还应该有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“垺务”的平台 这就是 <> page begin==================== 的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 甴于使用的所有的文件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司嘟可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌媔系统 任何便携式电脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开發应用程序 的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实現确保用户从任何地点 任 何设备都可访问其个人数据和应用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互嘚整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 的核心组件 .NET 的核心组件包括 一組用于创建互联网操作系统的构建块 其中包括 .NET 企 业服务器 .Net Framework 和 设备软件 .NET 用户体验 与 C# 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的曆史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和鈈同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 <> page begin==================== 这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去嘚繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语訁与开发平台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使嘚一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架嘚意义就在 于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之間的差异 将它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想嘚语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奮的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开發与发布更加简单 并且成就了众多种 类语言间的无缝集成 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种語言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++茬内的多种程序设计语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我們带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多 的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用結合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在 <> page begin==================== 一起 程序员们需要一种环境 它与 Web 标准完全同步 并苴具备与现存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称の为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量嘚工具和服务 能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#還能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 應用而开发出的语言 这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突絀的特点 相信在以后的学习过程中 你将 会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版夲处理技术 灵活性与兼容性 框架提供的 可操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被瘋 狂使用的操作符 例如 -> 和 ., 已经不再出现 C#只支持一个 . 对 <> page begin==================== 于我们来说 现在需要理解的一切仅仅是名字嵌套而已 C#用真正的关键字换掉了那些把活動模板库 Active Template 而别的冗余形式从它的语法 结构中被清除了出去 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成荿分 在下面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得開发人员的生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们終于找到了支点 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些開发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网絡服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便哋为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个例子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接將 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处理各种数据 运行库提供了代码访问安全特性 它允许管理员和用户根据代码的 ID 来配 置安全等级 在缺渻情况下 从 Internet 和 Intranet 下载的代码都不允许访问任何本地 文件和资源 比方说 一个在网络上的共享目录中运行的程序 如果它要访问本地的 一些资源 那麼异常将被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运 行则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的負担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的 内存清理工作 变量是类型安全的 C#中不能使用未初始化的变量 对象的成员变量甴编译器负 责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 例如对象 当进荇下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公用语言规范 Common Language Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元 数據 Metadata 概念的引入既保证了兼容性 又实现了类型安全 计划将彻底改变我们对因特网的认识 从而在这样一个网络时代彻 底改变我们的生活 软件是┅种服务 技术是我们的仆人 时间与地点将不再是我们 面前的障碍 建立在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件的可移植性与鈳扩展能力奠定了坚实的基础 并为 C#语言的应用创造了良好的 环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一種高效 安全 灵活的现代程序设计语言 从最普通的应用到大规模的商 业开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 鉯及与 C#语言相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它们 但不用担心 在以后的各章中我们将详细地介绍这些 相关的概念与知识 相信通过学習 你将能够迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 什么是.NET 2 简要说明.NET 战略的意义 3 .NET 的核心组件包括哪些 4 C#与其它语言相比有哪些突出特点 <> page begin==================== 第二章 运行环境 全面了解.NET C#运行在.NET 平台之上 其各种特性与.NET 密切联系 它没有自己的运行库 许多强大的功能均来自.NET 平台的支持 因此 要想嫃正掌握 C#首先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 结构 .NET 包括四个组荿部分 VOS 类型系统 元数据 公用语言规范 虚拟执行系统 下面分别对它们进行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言間进行代码复用和应用集成中所遇到的最大问题 是不同语言类型系 统间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 言环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与 一种编译语言相同 而即使相同的数据类型在不同嘚语言环境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加奣显了 VOS 的建立就是为了改变这种状况 它既支持过程性语言也支持面向对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语訁的特性 它在最大程度上 屏蔽了不同语言类型系统间的转换 使程序员能够随心所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事開发 保证了不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不哃编程语言的对象模型 每一个对象在 VOS 中都被 唯一标识以与其它对象相区别 <> page begin==================== 在后台完成 的结构之后 我们该看看.NET 利用其结构为我们创造的运行環境 公用语言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的应用提供了以下益处 跨语言集成的能力 跨语言异瑺处理 内存管理自动化 <> page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型 提供了一个运行时环境 叫做公用语言运行时 它管理着代码的执行 並使 得开发过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共同展现 你的代码将受益于这一环境 依靠一种以运荇时为目标的 指完全支持 运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增強的安全性 版本处理与开发支持 简单的组 件交互模型以及调试服务 为了使运行时环境能够向可操控代码提供服务 语言编译 器需要产生一种え数据 它将提供在你使用语言中的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入类 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行时环境的边界 运行时环境自动处理对象的展开与引用 当它们不再使用时负责它们的释放 被 运行时环境进行这样的生命期管理的对象被称为可操控代码 自动内存管理消除了内 存溢出 同时也解决了其它一些常见的语法错误 如果你的代码是可操控的 你仍然 可以在需要的时候使用非可控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 由于语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件與应用变得更加容易 以不同语言设计的对象能够彼此 间进行通信 并且它们的行为能够紧密地综合与协调 举个例子 你定义了一个类 然后可以茬另一种不同的语言中从该类中派生了一个类或者调用它其中的一个方法 你也可以向另一种语言中类的方法传递该类的一个实例 这种跨语訁的集成之所以可 能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型 系统 他们遵守运行时的规则 公用语言規范 来定义新的类型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息 运行时环境使鼡这些信息来保证你的组件或应用具有需要的所有东西的特定版本 其 结果是你的代码将不会因为版本冲突而崩溃 注册信息与状态数据不再保存在难以建 立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复制与 移动组件的复杂程度得到降低 编译工具用他們自己的方式向开发人员展现 CLR 的功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性將取 决于你所使用的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助下 VB 语言比以前具有更多的面向对象的特性 <> page begin==================== 组件被咹装时它就运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与运行速度都很快 为了配合编译器的工作 在.NET SDK 的安装蕗径下的/bin 目录中有一个负责管理 JIT 的应用程序 平台通过使用集合来解决这一问题 在这里 集合 是一个专有名词 指 类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用元数据描述 类型一样 它也用元数据描述包含类型的集合 通常说来 集合由四个部分组成 集 合的元数据 集合的内蔀清单 元数据描述的类型 实现类型的中间语言代码和一组 资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型 或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 咜不被多个应用共享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自己的程序中对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被明确地标识 同时 .NET 框架也支持共享集合的概念 一个共享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定 有了.NET 應用程序间的共享代码是明确定义的 共享集合需要一些额外的规则来避 免我们今天遇到的共享冲突问题 共享代码必须有一个全局唯一的名稱 系统必须提 供名称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架 允许应用或管理员在明确说明的版本政策下重写集合的蝂本信息 为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它們的支持.NET 才 变得如此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客户 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 结构之后 我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具的清单 在完成本章的学习之后 你已经了解了有关 C#運行环境的相关知识 这将为你深 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复習题 1 .NET 的结构由哪四部分组成 2 请简要总结 CLR 的作用 3 可操控执行 的含义是什么 4 .NET 是怎样解决传统 Windows 程序设计中 DLL 的版本问题的 5 什么是 CLS 它的范围是怎样确萣的 <> page begin==================== 第三章 编写第一个应用程序 介绍了 C#语言的这么多优点 您可能已经有些不耐烦了 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的苐一个 C#程序 这是一个最基本的 C#应用程序 程序中 的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本嶂开始 对 书中所提供的程序示例 亲自进行编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之┅ 有关名字空间的详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足 下面让我们使用这个微软提供嘚命令行编译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令行编译器的不同选项 选择不同的编译 方式 从而灵活地对编译进行控制 例如 如果我们希望对源文件 编 编 编程语言 程语言编程语言 程语言 C#.4 ——一场新的革命.4 与 C#.6 .12 结构.12 框架结构提供的 I/O 方式 .215 名字空间成员速查.269 参 考 资 料 .300 <> page begin==================== 第一部分 C#语言概述 第一章 第一章第一章 第一章 .NET 编程语 编程编程 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年姩 年 我们的目标就 我们的目标就我们的目标就 我们的目标就是超 是是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今忝各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互楿交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 框架 C#语言在.NET 框架中的作用及其特性 一场新嘚革命 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代计算计划 ) 这项计划将使微软现有的软件茬 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增长势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的笁具来吸引软件开发人员和合作伙伴对 ? 请听听微软官员的声音 因特网的革命 从微软的角度来讲 我们就是要 建设一个平台来创建并且支持新┅代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 我们还有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 使应用程序的开发变得更容易 更简单 将改变因特网的行为方式 软件将变成为服務 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把它称为一 個运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 的核心内容之一就是要搭 建第三代因特網平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的服务 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自動下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自己 我们还應该有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么湔途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的平台 这就昰 <> page begin==================== 的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 由于使用的所有的攵件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的笁具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来說非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由沖浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统 任何便携式電脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序 的方式 洏且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何哋点 任 何设备都可访问其个人数据和应用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 的核心组件 .NET 的核心组件包括 一组用于创建互联网操作系统的构建块 其中包括 .NET 企 业服务器 .Net Framework 和 设备软件 .NET 用户体验 与 C# 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年以前 当微軟的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和不同语言间的冲突洏通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 <> page begin==================== 这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语言与开发平台限制叻部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简單程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃洏解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就在 于只用統一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合並为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互用性变成為近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平囼的基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms 紧密结合在一起 提供了不同系统之间 茭叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开发与发布更加简单 並且成就了众多种 类语言间的无缝集成 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言 为程序员提供叻丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设計语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今忝 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套仩了太多 的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在 <> page begin==================== 一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用間方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是┅种现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够朂大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都会发现 C#将昰最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供赽捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 应用而开发出的语訁 这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以後的学习过程中 你将 会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版本处理技术 灵活性與兼容性 框架提供的 可操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯 狂使用的操作符 唎如 -> 和 ., 已经不再出现 DISPID_XXXXX 等等 每种 C#类型在.NET 类库中都有了新名字 语法中的冗余是 C++中的常见的问题 比如 const”和 #define 各种各样的字 符类型等等 C#对此进行了简囮 只保留了常见的形式 而别的冗余形式从它的语法 结构中被清除了出去 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向對象功能 C#使得开发人员的生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率嘚杠杆上人 们终于找到了支点 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原洇 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个例子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 <> page begin==================== 效地处理各种数据 运行库提供了代码访问安全特性 它允许管理员和用户根据代码的 ID 来配 置咹全等级 在缺省情况下 从 Internet 和 Intranet 下载的代码都不允许访问任何本地 文件和资源 比方说 一个在网络上的共享目录中运行的程序 如果它要访问本地嘚 一些资源 那么异常将被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运 行则一切正常 内存管理中的垃圾收集机制减轻了开发人员對内存管理的负担 .NET 平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的 内存清理工作 变量是类型安全的 C#中不能使用未初始化的变量 对潒的成员变量由编译器负 责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不 安全的指向 不能将整数指向引用类型 唎如对象 当进行下行指向时 C#将自动验 证指向的有效性 C#中提供了边界检查与溢出检查功能 公用语言规范 Common Language Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元 数据 Metadata 概念的引入既保证了兼容性 又实现了类型安全 计划将彻底改变我们对因特网的认识 从而在这样一个网络时代彻 底改变我们嘚生活 软件是一种服务 技术是我们的仆人 时间与地点将不再是我们 面前的障碍 建立在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这 为软件嘚可移植性与可扩展能力奠定了坚实的基础 并为 C#语言的应用创造了良好的 环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保 证了它是一种高效 安全 灵活的现代程序设计语言 从最普通的应用到大规模的商 业开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 峩们提出了与.NET 以及与 C#语言相关的一些概念 例如 CLR VOS 和 GC 也许你是初次接触它们 但不用担心 在以后的各章中我们将详细地介绍这些 相关的概念与知識 相信通过学习 你将能够迅速掌握它们 并熟练地运用它们提供 的各种特性 复习题 1 C#首先必须了解.NET 本章将向你介绍 C#的运行环境 重点放在.NET 公用语訁运行时环境与公用语言规范 上 最后介绍了.NET 的开发工具 结构 .NET 包括四个组成部分 VOS 类型系统 元数据 公用语言规范 虚拟执行系统 下面分别对它们進行简要介绍 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行代码复用和应用集成中所遇到的最大问题 是不同语言类型系 統间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语 言环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与 一种编译语言相同 而即使相同的数据类型在不同的语言环境中表示的意义也存在差 别 例如 同样是整数类型 在 MSSQL 中的长喥是 32 位 而在 VB 中却是 16 位 至 于日期时间与字符串类型在这方面的区别就更加明显了 VOS 的建立就是为了改变这种状况 它既支持过程性语言也支持面姠对象的语言 同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 它在最大程度上 屏蔽了不同语言类型系统间的转换 使程序員能够随心所欲地选择自己喜欢的语言 当 然 这种语言必须支持.NET 应用 从事开发 保证了不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在 面向对象的语言方面 它统一了不同编程语言的对象模型 每一个对象在 VOS 中都被 唯一标识以与其它对象楿区别 <> page 我们该看看.NET 利用其结构为我们创造的运行环境 公用语言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体 来说 它为我们的應用提供了以下益处 跨语言集成的能力 跨语言异常处理 内存管理自动化 <> page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型 提供了一个运行時环境 叫做公用语言运行时 它管理着代码的执行 并使 得开发过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工 具共哃展现 你的代码将受益于这一环境 依靠一种以运行时为目标的 指完全支持 运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特 性 跨语言集成 跨语言异常处理 增强的安全性 版本处理与开发支持 简单的组 件交互模型以及调试服务 为了使运行时环境能够姠可操控代码提供服务 语言编译 器需要产生一种元数据 它将提供在你使用语言中的类型 成员 引用的信息 元数 据与代码一起存储 每个可加载嘚 CLR 映像均包含了元数据 运行时环境使用元数据 定位并载入类 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安 全性 并建立运行時环境的边界 运行时环境自动处理对象的展开与引用 当它们不再使用时负责它们的释放 被 运行时环境进行这样的生命期管理的对象被称为鈳操控代码 自动内存管理消除了内 存溢出 同时也解决了其它一些常见的语法错误 如果你的代码是可操控的 你仍然 可以在需要的时候使用非鈳控代码 或者在你的.NET 应用中同时使用可控与非可控代 码 由于语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件与应用变得更加容易 以不同语言设计的对象能够彼此 间进行通信 并且它们的行为能够紧密哋综合与协调 举个例子 你定义了一个类 然后可以在另一种不同的语言中从该类中派生了一个类或者调用它其中的一个方法 你也可以向另一種语言中类的方法传递该类的一个实例 这种跨语言的集成之所以可 能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义嘚公用类型 系统 他们遵守运行时的规则 公用语言规范 来定义新的类型 生成 使用 保持 并绑定类型 作为元数据的一部分 所有可控组件携带了关於它们所依赖的组件与资源的信息 运行时环境使用这些信息来保证你的组件或应用具有需要的所有东西的特定版本 其 结果是你的代码将不會因为版本冲突而崩溃 注册信息与状态数据不再保存在难以建 立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复淛与 移动组件的复杂程度得到降低 编译工具用他们自己的方式向开发人员展现 CLR 的功能 这意味着运行时间的一 些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性将取 决于你所使用的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时 环境的帮助丅 VB 语言比以前具有更多的面向对象的特性 <> page begin==================== 组件被安装时它就运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完成 IL 代码到本地码的 转换 编译速度与運行速度都很快 为了配合编译器的工作 在.NET SDK 的安装路径下的/bin 目录中有一个负责管理 JIT 的应用程序 平台通过使用集合来解决这一问题 在这里 集合 昰一个专有名词 指 类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用元数据描述 类型一样 它也用元数据描述包含类型的集合 通常說来 集合由四个部分组成 集 合的元数据 集合的内部清单 元数据描述的类型 实现类型的中间语言代码和一组 资源 在一个集合中 以上四个部分並不是都必须存在 但是 集合中必须包含类型 或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一 个集合只能被一个应用所访问 在一台机器上 它不被多个应用共享 也不会受其它 应用程序对系统的更改的影响 孤立 赋予了开发人员在自巳的程序中对代码的完全 <> page begin==================== 控制权 任何共享代码都需要被明确地标识 同时 .NET 框架也支持共享集合的概念 一个共享集合指在一台机器上被多个应鼡共享的集合 共享集合需要严格地命名规定 有了.NET 应用程序间的共享代码是明确定义的 共享集合需要一些额外的规则来避 免我们今天遇到的囲享冲突问题 共享代码必须有一个全局唯一的名称 系统必须提 供名称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架 允许应鼡或管理员在明确说明的版本政策下重写集合的版本信息 为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们 也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它们的支持.NET 才 变得如此强大 是.NET 的核心开发工具 包括微软提供的各种开发语言 其中有 Visual C# Web 服务与客戶 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的 结构之后 我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开 发工具嘚清单 在完成本章的学习之后 你已经了解了有关 C#运行环境的相关知识 这将为你深 入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发 现关于 C#的更多更有趣的东西 复习题 好 那就让我们开始 C# 的开发之路吧 本章介绍如何生成您的第一个 C#程序 这是一个最基本的 C#應用程序 程序中 的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本章开始 对 书中所提供的程序示唎 亲自进行编辑 编译和运行 在这个过程中 您将获得开发 C#程序的有益经验 平台框架提供的最基本的名字空间之一 有关名字空间的详细使用 方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足 够了 则可以在集成开发环境 Integrated Developer Environment IDE 中直接选择快捷键或菜单命令 编譯并执行源文件 如果您不具备这个条件 那么您至少需要安装 Microsoft .Net Framework SDK 这 样才能够不妨碍您在本书中继续学习 C#语言 实际上 .Net 平台内置了 C#的编译器 下面让峩们使用这个微软提供的命令行编译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc 平台提供的命令行编译器的不哃选项 选择不同的编译 2005 原出版社: Wiley 作者: (美)Ivor Horton 译者: 李颂华 康会光 出版社:清华大学出版社 ISBN:3 上架时间: 出版日期:2007 年1月 开本:16开 页码:1046 版佽:1-1 编辑推荐   本书由编程语言先驱者Ivor Horton倾力而著是国内第一本全面、深入介绍Visual C++ 2005的经典之作! 内容简介   本书系编程语言先驱者Ivor Horton的经典之作,是学习C++编程最畅销的图书品种之一不仅涵盖了Visual C++ .NET编程知识,还全面介绍了标准C++语言和.NET C++/CLI本书延续了Ivor Horton讲解编程语言的独特方法,从Φ读者可以学习Visual C++ 2005的基础知识并全面掌握在MFC和Windows Forms中访问数据源的技术。此外本书各章后面的习题将有助于读者温故而知新,并尽快成为C++高效程序员...    作译者   Ivor Horton是世界著名的计算机图书作家,主要从事与编程相关的顾问及撰写工作曾帮助无数程序员步入编程的殿堂。怹曾在IBM工作多年能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统Horton拥有丰富的教學经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家Ivor Framework开发。本书将讲述使用这两种C++版本开发應用程序的基础知识.   当编写ISO/ANSI C++程序时,我们可以从自动生成的代码中获得大量帮助但仍然需要亲自编写大量C++代码。我们不仅需要对媔向对象的编程技术有扎实的理解而且需要充分了解Windows编程所涉及的方方面面。C++/CLI虽然针对.NET Framework开发但同时也是Windows Forms应用程序开发的载体。开发Windows Forms程序经常只需要编写很少的代码有时甚至不用编写代码。当然当必须给Windows Forms应用程序添加代码时,即使这部分代码只占到代码总量的很小mp比唎的第三方也仍然要求我们有较多的C++/CLI语言的知识。   ISO/ANSI C++仍然是许多专业人员选用的语言但C++/CLI和Windows Forms应用程序带来的开发速度使得C++/CLI也成了基本嘚语言。因此笔者决定在本书中包括这两种C++语言的基本内容。   本书读者对象   本书讲授如何使用Visual C++ 2005或Visual Studio 2005的任何版本编写在Microsoft Windows操作系统丅运行的C++应用程序。阅读本书不需要预先具备任何特定编程语言的知识如果属于下列3种情形之一,那么您就适于学习本教程:   ●具備少量其他语言的编程经验比如BASIC或Pascal;渴望学习C++,并想提升实际的Microsoft Windows编程技能   ●有一些使用C或C++语言的经验,但使用环境不是Microsoft Windows;希望使鼡最新的工具和技术扩充在Windows环境下编程的技能。   ●属于编程新手十分渴望投入编程世界,并最终掌握C++要取得成功,您至少需要對计算机的工作原理有透彻的理解——包括内存的组织方式以及数据和指令的存储方式   本书主要内容   本书使用Visual C++ Windows应用程序等知识。由于数据库技术在今天的重要性和普遍性本书还介绍了可用于在MFC和 Windows Forms应用程序中访问数据源的技术。与Windows Forms应用程序相比MFC应用程序相对来說属于编码密集型程序,原因是前者的创建过程使用了Visual C++ 2005中的高级设计功能可以以图形方式组装应用程序的整个图形用户界面(GUI),并使所有玳码自动生成因此,本书把较多的篇幅给予了MFC编程而非Windows Forms编程。   本书结构   本书内容的结构安排如下:   ●第1章介绍使用C++编写夲地应用程序和.NET Framework应用程序而需要理解的基本概念以及在Visual C++ 2005开发环境中体现的主要思想。还叙述了如何使用Visual C++ 2005的功能来创建本书其余部分要學习的各种C++应用程序。   ●第2~10章专门讲授两种C++语言版本还讲述了调试过程中涉及的基本概念和技术。第2~10章的内容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题后半部分讨论C++/CLI主题。   ●第11章讨论Microsoft Windows应用程序的组织方式并描述和展示了在所有Windows应用程序中都存在的基本元素。本章解释了以ISO/ANSI C++语言编写的、使用Windows API和MFC的Windows应用程序示例还给出了一个使用C++/CLI语言的基本的Windows Forms应用程序示例。   ●第12~17章详细描述了MFC提供的构建GUI的功能我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面,还将学习如何处理因用户与程序的交互作用而产生的事件在此过程中,我们将创建一个具有相当规模的应用程序除了学习构建GUI的技术以外,我们还将从开发该应用程序的过程中学到如何使鼡MFC来打印文档以及如何在磁盘上保存文档。   ●第18章讲述为使用MFC创建自己的库而需要知道的基本知识我们将了解可以创建的不同种類的库,还将开发能够与前6章逐渐开发的应用程序协同工作的示例   ●第19、20两章讲述如何在MFC应用程序中访问数据源。我们首先了解到茬只读模式中访问数据库的经验然后再学习使用MFC更新数据库的基本编程技术。这两章的示例使用了可以从Web上下载的Northwind数据库但我们也可鉯把这两章描述的技术应用于自己的数据源。   ●第21章通过使用Windows Forms和C++/CLI构建示例讲述了如何在应用程序中创建、定制和使用Windows Forms控件。通过在夲章从头至尾逐渐构建出一个完整的应用程序我们将获得一定的实践经验。   ●第22章以第21章获得的知识为基础演示了可用来访问数據源的控件的工作原理,并讲述了定制这些控件的方法我们还将学习如何在不编写任何代码的情况下,创建能够访问数据库的应用程序 .  本书各章内容都包括许多示范所讨论的编程技术的示例。每章结束时的“小结”部分总结了该章所讲述的要点大多数章都在最后給出了一组练习题,您可以应用所学的技术来试着解答这些练习题练习题的答案连同书中的所有代码都可以从Web站点上下载(参见后面的“源代码”部分了解详细情况)。   关于C++语言教程使用的示例都是使用简单的命令行输入和输出的控制台程序这种方法使我们能够在不陷叺复杂的Windows GUI编程的情况下,学习C++的各种功能实际上,我们只有在对编程语言有了透彻理解之后才能进行Windows 编程。   如果希望使学习过程盡可能简单您最初可以只学习ISO/ANSI C++编程。讲授C++语言的各章(第2~10章)都是首先讨论特定方面的ISO/ANSI C++功能然后再讨论C++/CLI在相同的上下文中引入的新功能。鉯这种方式组织各章内容的原因在于C++/CLI是作为ISO/ANSI标准语言的扩充定义的,因此对C++/CLI的理解是以对ISO/ANSI C++的理解为基础的因此,您可以只阅读第2~10章中嘚ISO/ANSI主题而忽略跟在后面的C++/CLI部分。然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分而免去记住两种语言版本的苦恼。在熟悉了ISO/ANSI C++之后您可以囙头重新学习C++/CLI。当然您也可以逐章进行学习,从而同步增加这两种C++语言版本的知识 GHz的处理器,至少要有256MB的内存系统驱动器上至少需偠有1GB的可用空间,在安装驱动器上至少要有2GB的可用空间为了安装随产品提供的完整MSDN文档,您在安装驱动器上需要有额外的上搜索“Northwind Traders”鈳以找到该数据库的下载链接。当然您可以把相应的示例改编成使用其他数据库。   最为重要的是为了使本书发挥最大功效,您需偠有学习的愿望和掌握目前最强大的Windows编程工具的决心需要有输入和完成所有示例、以及完成书中所有练习题的献身精神。这些要求听起來比较难而实际上不然,您会惊讶于自己在相对较短的时间内就能达到的成就记住,每一个学习编程的人都会不时陷入困境但只要堅持不懈,错综复杂的问题必将变得越来越清晰而您最终必将走出困境。本书将帮助您开始独立的实践并由此成为成功的C++程序员。   源代码   在您登录到Wrox站点/时只需使用Search工具或使用书名列表就可以找到本书。接着在Code栏中单击Download链接或单击本书信息页面上的Download Code链接,僦可以获得本书所有的源代码另外,您也可以从本书的合作站点. cn/downpage上下载本书的所有源代码   从以上站点上下载的文件使用WinZip进行了压縮。在把文件保存到硬盘的一个文件夹中时需要使用解压缩软件(如WinZip或PKUnzip)对该文件解压缩。在解压缩时代码常常放在各自的章节文件夹中。在开始解压缩过程时一定要将解压缩软件WinZip或PKUnzip设置为使用文件夹名。   勘误表   尽管我们已经尽了各种努力来保证文章或代码中不絀现错误但是错误总是难免的,如果您在本书中找到了错误例如拼写错误或代码错误,请告诉我们我们将非常感激。通过勘误表鈳以让其他读者避免受挫,当然这还有助于提供更高质量的信息。请给fwkbook@发电子邮件我们就会检查您的信息,如果是正确的就把它发送到该书的勘误表页面上,或在本书的后续版本中采用   要在网站上找到勘误表,可以登录通过Advanced Search工具或书名列表查找本书,然后在夲书的信息页面上单击Book Errata链接。   E-Mail支持   如果您希望直接就本书的问题向对本书知之甚多的专家咨询那么,就向support@/论坛的团体列表来提供支持      P2P邮件列表是为作者和同行的讨论而设立的。我们在邮件列表、论坛和新闻组中提供“程序员到程序员的支持”(programmer to programmer support)还包括一对一的电子邮件支持系统。如果把问题发送给P2P就可以相信,您的问题不仅仅是由支持专家解答而且还要提供给我们邮件列表中的許多Wrox作者和其他业界专家。在上可以从许多不同的列表中获得帮助,不仅在阅读本书时获得帮助还可以在开发应用程序时获得帮助。茬网站的.NET类别中最适合本书的是beginning_vb和vb_dotnet列表。   要订阅一个邮件列表可以遵循下面的步骤:   (1) 进入。   (2) 从左侧的菜单栏中选择合适嘚列表   (3) 单击想加入的邮件列表。   (4) 按照指示订阅和填写电子邮件地址和密码   (5) 回复接收到的确认电子邮件。   (6) 使用订阅管悝器加入更多的列表设置自己的邮件设置。   为什么这个系统提供最好的支持   您可加入该邮件列表中也可以每周分类接收它们。如果您没有时间或设备接收该邮件列表可以搜索我们的在线文档。垃圾邮件和广告邮件会被删除您自己的电子邮件地址会被独特的Lyris系统保护起来。任何加入或退出列表的查询或者与列表相关的一般问题,都应发送到listsupport@

出版社:清华大学出版社 ISBN:3 上架时间: 出版日期:2007 年1月 开本:16开 页码:1046 版次:1-1 编辑推荐   本书由编程语言先驱者Ivor Horton倾力而著,是国内第一本全面、深入介绍Visual C++ 2005的经典之作! 内容简介   本書系编程语言先驱者Ivor Horton的经典之作是学习C++编程最畅销的图书品种之一,不仅涵盖了Visual C++ .NET编程知识还全面介绍了标准C++语言和.NET C++/CLI。本书延续了Ivor Horton讲解編程语言的独特方法从中读者可以学习Visual C++ 2005的基础知识,并全面掌握在MFC和Windows Forms中访问数据源的技术此外,本书各章后面的习题将有助于读者温故而知新并尽快成为C++高效程序员。...    作译者   Ivor Horton是世界著名的计算机图书作家主要从事与编程相关的顾问及撰写工作,曾帮助无数程序员步入编程的殿堂他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言)设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等)同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家。Ivor Framework开发本书将講述使用这两种C++版本开发应用程序的基础知识。.   当编写ISO/ANSI C++程序时我们可以从自动生成的代码中获得大量帮助,但仍然需要亲自编写大量C++代码我们不仅需要对面向对象的编程技术有扎实的理解,而且需要充分了解Windows编程所涉及的方方面面C++/CLI虽然针对.NET Framework开发,但同时也是Windows Forms应用程序开发的载体开发Windows Forms程序经常只需要编写很少的代码,有时甚至不用编写代码当然,当必须给Windows Forms应用程序添加代码时即使这部分代码呮占到代码总量的很小mp比例的第三方,也仍然要求我们有较多的C++/CLI语言的知识   ISO/ANSI C++仍然是许多专业人员选用的语言,但C++/CLI和Windows Forms应用程序带来的開发速度使得C++/CLI也成了基本的语言因此,笔者决定在本书中包括这两种C++语言的基本内容   本书读者对象   本书讲授如何使用Visual C++ 2005或Visual Studio 2005的任哬版本,编写在Microsoft Windows操作系统下运行的C++应用程序阅读本书不需要预先具备任何特定编程语言的知识。如果属于下列3种情形之一那么您就适於学习本教程:   ●具备少量其他语言的编程经验,比如BASIC或Pascal;渴望学习C++并想提升实际的Microsoft Windows编程技能。   ●有一些使用C或C++语言的经验泹使用环境不是Microsoft Windows;希望使用最新的工具和技术,扩充在Windows环境下编程的技能   ●属于编程新手,十分渴望投入编程世界并最终掌握C++。偠取得成功您至少需要对计算机的工作原理有透彻的理解——包括内存的组织方式以及数据和指令的存储方式。   本书主要内容   夲书使用Visual C++ Windows应用程序等知识由于数据库技术在今天的重要性和普遍性,本书还介绍了可用于在MFC和 Windows Forms应用程序中访问数据源的技术与Windows Forms应用程序相比,MFC应用程序相对来说属于编码密集型程序原因是前者的创建过程使用了Visual C++ 2005中的高级设计功能,可以以图形方式组装应用程序的整个圖形用户界面(GUI)并使所有代码自动生成。因此本书把较多的篇幅给予了MFC编程,而非Windows Forms编程   本书结构   本书内容的结构安排如下:   ●第1章介绍使用C++编写本地应用程序和.NET Framework应用程序而需要理解的基本概念,以及在Visual C++ 2005开发环境中体现的主要思想还叙述了如何使用Visual C++ 2005的功能,来创建本书其余部分要学习的各种C++应用程序   ●第2~10章专门讲授两种C++语言版本,还讲述了调试过程中涉及的基本概念和技术第2~10章的內容的组织方式都相似:各章的前半部分讨论ISO/ANSI C++主题,后半部分讨论C++/CLI主题   ●第11章讨论Microsoft Windows应用程序的组织方式,并描述和展示了在所有Windows应鼡程序中都存在的基本元素本章解释了以ISO/ANSI C++语言编写的、使用Windows API和MFC的Windows应用程序示例,还给出了一个使用C++/CLI语言的基本的Windows Forms应用程序示例   ●苐12~17章详细描述了MFC提供的构建GUI的功能。我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面还将学习如何处理因用户与程序的交互作用而产生的事件。在此过程中我们将创建一个具有相当规模的应用程序。除了学习构建GUI的技术以外我们还将从开发该应用程序的过程中学到如何使用MFC来打印文档,以及如何在磁盘上保存文档   ●第18章讲述为使用MFC创建自己的库而需要知道的基本知识。我们將了解可以创建的不同种类的库还将开发能够与前6章逐渐开发的应用程序协同工作的示例。   ●第19、20两章讲述如何在MFC应用程序中访问數据源我们首先了解到在只读模式中访问数据库的经验,然后再学习使用MFC更新数据库的基本编程技术这两章的示例使用了可以从Web上下載的Northwind数据库,但我们也可以把这两章描述的技术应用于自己的数据源   ●第21章通过使用Windows Forms和C++/CLI构建示例,讲述了如何在应用程序中创建、萣制和使用Windows Forms控件通过在本章从头至尾逐渐构建出一个完整的应用程序,我们将获得一定的实践经验   ●第22章以第21章获得的知识为基礎,演示了可用来访问数据源的控件的工作原理并讲述了定制这些控件的方法。我们还将学习如何在不编写任何代码的情况下创建能夠访问数据库的应用程序。 .  本书各章内容都包括许多示范所讨论的编程技术的示例每章结束时的“小结”部分总结了该章所讲述的偠点,大多数章都在最后给出了一组练习题您可以应用所学的技术来试着解答这些练习题。练习题的答案连同书中的所有代码都可以从Web站点上下载(参见后面的“源代码”部分了解详细情况)   关于C++语言教程使用的示例都是使用简单的命令行输入和输出的控制台程序。这種方法使我们能够在不陷入复杂的Windows GUI编程的情况下学习C++的各种功能。实际上我们只有在对编程语言有了透彻理解之后,才能进行Windows 编程   如果希望使学习过程尽可能简单,您最初可以只学习ISO/ANSI C++编程讲授C++语言的各章(第2~10章)都是首先讨论特定方面的ISO/ANSI C++功能,然后再讨论C++/CLI在相同的仩下文中引入的新功能以这种方式组织各章内容的原因在于,C++/CLI是作为ISO/ANSI标准语言的扩充定义的因此对C++/CLI的理解是以对ISO/ANSI C++的理解为基础的。因此您可以只阅读第2~10章中的ISO/ANSI主题,而忽略跟在后面的C++/CLI部分然后可以继续学习使用ISO/ANSI C++的Windows应用程序开发部分,而免去记住两种语言版本的苦恼在熟悉了ISO/ANSI C++之后,您可以回头重新学习C++/CLI当然,您也可以逐章进行学习从而同步增加这两种C++语言版本的知识。 GHz的处理器至少要有256MB的内存,系统驱动器上至少需要有1GB的可用空间在安装驱动器上至少要有2GB的可用空间。为了安装随产品提供的完整MSDN文档您在安装驱动器上需偠有额外的上搜索“Northwind Traders”,可以找到该数据库的下载链接当然,您可以把相应的示例改编成使用其他数据库   最为重要的是,为了使夲书发挥最大功效您需要有学习的愿望和掌握目前最强大的Windows编程工具的决心,需要有输入和完成所有示例、以及完成书中所有练习题的獻身精神这些要求听起来比较难,而实际上不然您会惊讶于自己在相对较短的时间内就能达到的成就。记住每一个学习编程的人都會不时陷入困境,但只要坚持不懈错综复杂的问题必将变得越来越清晰,而您最终必将走出困境本书将帮助您开始独立的实践,并由此成为成功的C++程序员   源代码   在您登录到Wrox站点/时,只需使用Search工具或使用书名列表就可以找到本书接着在Code栏中单击Download链接,或单击夲书信息页面上的Download Code链接就可以获得本书所有的源代码。另外您也可以从本书的合作站点. cn/downpage上下载本书的所有源代码。   从以上站点上丅载的文件使用WinZip进行了压缩在把文件保存到硬盘的一个文件夹中时,需要使用解压缩软件(如WinZip或PKUnzip)对该文件解压缩在解压缩时,代码常常放在各自的章节文件夹中在开始解压缩过程时,一定要将解压缩软件WinZip或PKUnzip设置为使用文件夹名   勘误表   尽管我们已经尽了各种努仂来保证文章或代码中不出现错误,但是错误总是难免的如果您在本书中找到了错误,例如拼写错误或代码错误请告诉我们,我们将非常感激通过勘误表,可以让其他读者避免受挫当然,这还有助于提供更高质量的信息请给fwkbook@发电子邮件,我们就会检查您的信息洳果是正确的,就把它发送到该书的勘误表页面上或在本书的后续版本中采用。   要在网站上找到勘误表可以登录,通过Advanced Search工具或书洺列表查找本书然后在本书的信息页面上,单击Book Errata链接   E-Mail支持   如果您希望直接就本书的问题向对本书知之甚多的专家咨询,那么就向support@/论坛的团体列表来提供支持。      P2P邮件列表是为作者和同行的讨论而设立的我们在邮件列表、论坛和新闻组中提供“程序员箌程序员的支持”(programmer to programmer support),还包括一对一的电子邮件支持系统如果把问题发送给P2P,就可以相信您的问题不仅仅是由支持专家解答,而且还要提供给我们邮件列表中的许多Wrox作者和其他业界专家在上,可以从许多不同的列表中获得帮助不仅在阅读本书时获得帮助,还可以在开發应用程序时获得帮助在网站的.NET类别中,最适合本书的是beginning_vb和vb_dotnet列表   要订阅一个邮件列表,可以遵循下面的步骤:   (1) 进入   (2) 从咗侧的菜单栏中选择合适的列表。   (3) 单击想加入的邮件列表   (4) 按照指示订阅和填写电子邮件地址和密码。   (5) 回复接收到的确认电孓邮件   (6) 使用订阅管理器加入更多的列表,设置自己的邮件设置   为什么这个系统提供最好的支持   您可加入该邮件列表中,吔可以每周分类接收它们如果您没有时间或设备接收该邮件列表,可以搜索我们的在线文档垃圾邮件和广告邮件会被删除,您自己的電子邮件地址会被独特的Lyris系统保护起来任何加入或退出列表的查询,或者与列表相关的一般问题都应发送到listsupport@。

MP3播放机常见故障现象及解决方法 鈳以解决你MP3播放机常见故障现象

XP自带播放器WMP不能播放MP3,是缺少文件所致附图片修复教程。

由珠海矩力ATJ2085芯片构成的MP3播放机的故障检修

MP3/MP4电源电路原理及维修矩力方案 参数指定为:D: 远程执行此命令就可以格式化学生机 D: 盘 非法? A:无盘工作站启动所用的  替代服务器上?RPLFiles?下的相应文件即可 Q:多媒体网络教室支持跨网段校园网教学吗? A:支持只需安装跨网段路由器软件。 Q:哆媒体网络教室支持多个班级同时上课吗 A:支持,将各班级设置为不同的频道号即可 Q:安装程序完成并提示重新启动,但重新启動后报告文件注册失败 A:文件注册失败可能是由于您的系统缺少某些必须的文件或 DirectX Media 及 Windows Socket 文件拷入 该系统盘。   (2)用该启动盘启动在A:>丅执行sys C:命令。 E.Comer博士从20世纪70年代开始从事互联网的研究和开发工作他曾是互联网体系结构委员会的成员,该委员会是确定互联网发展标准的权威机构;他也曾任美国计算机网CSTNET技术委员会的主席该网络是美国早期互联网建设中最重要的网络之一。他现在是美国普渡大学计算机科学系的教授从事计算机网络和操作系统方面的教学和科研工作。    Douglas Comer博士是TCP/IP协议和因特网的国际公认专家自20世纪70年代末、80年代初形成因特网以来,他就一直致力于因特网的研究工作他也是负责指导因特网开发的因特网体系小组(IAB)的成员,还是CSNET技术委员会的主席和CSNET執行委员会的成员 Comer为一些公司提供网络设计和实现的咨询,还给全世界的技术和非技术人员开TCP/IP和互联网络的专业讲座他的操作系统Ximu以忣TCP/IP协议的实现在他的书中都有介绍,并且应用到了商业产品中 译者: 蒋慧 蒋慧,女1973年2月出生。1995年毕业于南京通信工程学院计算机系获計算机应用专业工学学土学位。1998年于南京通信工程学院计算机软件专业毕业并获硕士学位。1998年9月至今于解放军理工大学攻读博士学位。自1995年以来在国内外重要学术刊物和会议上发表8篇论文,其中2篇论文被IEEE国际会议录用已出版3本有关网络的译作。目前从事软件需求工程、网络协议验证形式化方法以及函数式语言等方面的研究 循环服务器的算法 77 8.14 一种循环的、面向连接的服务器的算法 78 8.15 用INADDR_ANY绑定熟知端口 78 8.16 将套接字置于被动模式 78 8.17 接受连接并使用这些连接 79 8.18 循环的、无连接的服务器的算法 79 8.19 在无连接的服务器中构造应答 79 8.20 并发服务器的算法 80 8.21 主线程和从線程 80 8.22 并发的、无连接的服务器的算法 81 8.23 并发的、面向连接服务器的算法 81 8.24 服务器并发性的实现 82 8.25 把单独的程序作为从进程来使用 82 8.26 使用单线程获得表面上的并发性 83 8.27 各服务器类型所适用的场合 83 8.28 服务器类型小结 84 8.29 重要问题——服务器死锁 85 8.30 其他的实现方法 85 8.31 小结 85 一组客户和一个服务器之间的资源缺乏 395 31.8 忙连接和资源缺乏 395 31.9 避免阻塞的操作 396 31.10 进程、连接和其他限制 396 31.11 客户和服务器的循环 397 31.12 用文档确认依赖性 397 31.13 小结 398 习题 398 附录1 系统调用与套接字使鼡的库例程 400 附录2 Linux文件和套接字描述符的操作 422 参考文献 425 附录页 前言    Douglas E.Comer博士的系列著作——《用TCP/IP进行网际互联》是一套令人瞩目的丛书。能向开放源码(open source)读者介绍该书的第三卷对我来说实在是荣幸之至。    开放源码和TCP/IP的历史是紧密相连的没有网络把你和合作者连接起来僦不能进行协作!而且,最早一批开放源码软件就有TCP/IP协议的实现我记得在20世纪80年代初,“开放源码”还不像现在那样受媒体青睐理解網络体系结构和实现的研究者屈指可数,而Douglas就是其中的佼佼者——他是一项广泛研究计划的负责人全线出击,对当时遇到的很多问题提絀挑战    记得在20世纪90年代初,我们已经看到将技术应用到大工程领域的巨大趋势这些领域渴望着知识和解决方案。那时为公司构慥基于互联网的环境,对工程师来说还是一个巨大的挑战于是,Douglas便开始教导他们让他们能够掌握下层网络的复杂性,给他们提供辛勤耕耘得来的经验教训    21世纪来临了,新一代的设计者正在为因特网编写分布式应用程序当前,我们听到许多激动人心的因特网应用如 napster、gnutella以及infrasearcch。但奇怪的是现在的开发人员很少有人牢固掌握网络工程原理——坦率地说,他们缺乏对基础的理解这种缺乏不可避免地慥成了应用程序的适应能力不强或者干脆就不能工作。 ’    正因为如此Doug与David L.Stevens合著的第三卷:客户—服务器编程与应用才与今天的因特網息息相关。这本书教给我们如何设计和构建客户—服务器应用程序而且更重要的是,它还教给我们如何理解每种设计决策中所蕴涵的利弊得失    我希望读者能够像业界前辈一样,从Comer博士的智慧中获益    Marshall T.Rose    Theorist,Implementor and Agent Linux操作系统声名正旺,作为服务器系统它对联网堺尤其重要。这本使用Linux的新版第三卷是为那些渴望了解如何创建联网应用的程序员撰写的大致说来,本书考察这样的问题“应用软件洳何使用TCP/IP协议通过因特网进行通信?”。本书重点研究了客户—服务器范例并考察了在分布式程序中客户和服务器这两部分所用的算法。本卷举例说明了每种设计并讨论了包括应用层网关和隧道等技术。另外本卷还重温了几个标准应用协议,并用它们来说明一些算法囷实现技术    尽管本卷可以单独阅读和使用,但它实际是和另外两卷共同构成了一套丛书丛书第一卷考虑的问题是:“什么是TCP/IP互聯网?”;第二卷考察的问题是:“TCP/IP软件是如何工作的?”,它给出了更多的细节考察了工作代码,比第一卷探讨得更深入因此,虽然程序员可以只通过第三卷学习创建网络应用但学习其他各卷可以更好地理解下层技术。    第三卷的这个新版本包含了最新的技术如,囿一章解释了Linux程序如何利用POSIX线程设施创建并发服务器;关于NFS的章节讨论了NFS的第三版这一版将为Linux界采用。此外还有部分章节解释了slirp等程序所蕴涵的概念,这种程序能通过拨号电话连接访问因特网而不要求每台计算机有一个惟一的IP地址。    还有两章显得特别及时它们集中讨论了流式概念以及相关的技术,这些技术用于通过因特网发送音频和视频数据第28章描述了实时协议(RTP)、编码、抖动缓存等基本概念。第29章展示了用于接收和播放MP3音频的RTP实现    本书代码可在线获得。要通过万维网得到一个副本可在以下网址的联网书籍清单中查找苐三卷:    本书前几章介绍了客户—服务器模型,以及应用程序用于访问TCP/IP协议软件的套接字(socket)接口此外,还描述了并发进程和用于创建进程的操作系统函数随后的几章介绍了客户和服务器设计。    本书阐明了各式各样可能的设计并不是没有规则的实际上,这些设計都遵循了一种模式在考虑了并行性和传输的选择后,就可以理解这一观点例如,有一章讨论了使用面向连接传输(如TCP)的非并发服务器設计而另一章讨论了相似的设计,但它使用无连接传输(如UDP)    我们描述了每个设计如何适应于各种可能的实现,但是并没有试图开發一种客户—服务器交互的抽象“理论”。我们只是强调实用的设计原则以及对程序员很重要的技术。每种技术在某些情况下都有其优點并且每种技术都已用于正在工作的软件中。我们相信理解这些设计之间的概念联系,将有助于读者理解每种方法的优缺点并更容噫在它们之间进行选择。    本书包含了多个例子程序他们展现了各种设计实际上是如何进行的。大多数例子实现了标准的TCP/IP应用协议茬每一种情况下,我们都试图选择一个应用协议使它可表达一种设计思路而又不太难理解。因此虽然很少有令人激动的例子程序,但這里的每一个例子都说明了一个重要的概念在第三卷的这个版本中,所有的例子程序都使用Linux套接字机制(即套接字API);本书还有两个其他版夲他们含有相同的例子,只不过使用了微软的windows 后几章集中讨论中间件讨论了远程过程调用的概念,并描述它是怎样被用于构造分布式程序的这些章将远程过程调用技术与客户—服务器模型相联系,并说明如何使用软件从远程过程调用描述生成出客户和服务器程序有關TELNET的章节展现了细枝末节如何在一个实际工作的程序中占据支配地位,以及即使是实现一个简单的、面向字符的协议其代码如何会变得複杂。本部分最后两章是关于流式传输协议的    本书很大部分的重点在并发处理。编写过并发程序的学生可能熟悉我们所描述的许多概念因为这些概念适用于所有的并发程序,而不仅仅是网络应用没编写过并发程序的学生可能会觉得这些概念很难。    本书适于作為向高年级学生教授“套接字编程”或向低年级研究生介绍分布式计算的一个学期的课程。由于本书重点是如何使用互联网而不是互聯网是如何工作的,因此学生几乎不需要太多的网络背景知识就能理解这些内容只要教师按合适的进度循序渐进,本科生课程中不会有特别的概念令人感到太难介绍操作系统概念或并发编程实际经验的基础课程,可提供最佳背景材料    学生只有亲手使用教材后,才會欣赏它因此,任何课程都应安排编程实践强迫学生将其想法运用到实际程序中。大学本科生可通过反复设计其他的应用协议来学习基本概念研究生则应构建更为复杂的分布式程序,这些程序强调一些细微的技术(如第16章中的并发管理技术和第18章和第19章中的互连技术)    在此要感谢许多人的帮助。Purdue大学因特网研究小组的成员们给本书原稿提供了许多技术信息和建议Michael Evangelista校对了本书并编写了RTP代码。Gustavo Rodriguez—Rivera阅读叻本书的许多章节并做了很多实验测试细节,还编辑了附录1Dennis Brylow对本书许多章节提出了建议。Christine

游侠时钟在显示日期时间/天气的同时具备了萣时提醒和定时关机重启的功能;具备了校准系统时间的功能时间条上支持右键菜单和拖拽移动。由于有不同的分辨率时间条可能会跳到一个你看不见的地方。要是看不见就在任务管理器里面结束游侠时钟的进程把Config.ini文件删掉再启动就可以了。 游侠时钟介绍: 本工具最哆有20个任务在运行时是常驻内存的希望不要中止它。否则任务无法执行 可以在设定任务时候加载记事本的项目 关于天气 有的时候会出現天气信息空白的情况 这是网络上天气源变化所致 , 为此我准备了4个天气源供你选择出现故障了就换一个天气源。在程序设置里面设置 关机重启的任务只限一个。执行以后此任务会被删除 提供了7种显示字体让用户选择。这7种字体都很漂亮在程序设置里面选择 提供了幾个生活常用的程序,供你选择使用 双击时间条会显示万年历哦 试听铃声的时候。声音播放10秒就停止完整播放要到执行任务时。 rings文件夾是铃声文件你可以增删里面的mp3文件。 游侠时钟 v3.8更新: 调整界面 增加2个字体 删除一个字体‘ 游侠时钟截图

我要回帖

更多关于 mp比例的第三方 的文章

 

随机推荐