Location:
Search - 642 a
Search list
Description: 目录
第一篇 技术基础总结
第1章 .NET,你真的知道了吗
1.1 搞清自己是干什么的
1.2 .NET的几个特性
1.3 万丈高楼平地起:面试者必会
1.3.1 C#介绍
1.3.2 命名空间
1.3.3 C#语法格式要点
1.3.4 变量
1.3.5 类型推断
1.3.6 变量的作用域
1.3.7 常量
1.3.8 流程控制
1.3.9 字符串常见操作
1.3.10 几个常用的数学函数
1.4 .NET的面向对象之门
1.4.1 继承——“子承父业”
1.4.2 委托——“任务书”
1.4.3 事件——“年终分红”
1.4.4 反射——“解剖”
1.5 .NET开发几把小刀
1.5.1 using之多变身
1.5.2 @符号的妙用
1.5.3 预处理指令,有你更轻松
1.6 Visual Studio.NET 2008 实战
1.6.1 如何创建ASP.NET项目
1.6.2 如何创建Windows项目
1.6.3 Visual Studio.NET 2008操作与使用技巧
1.6.4 常见开发调试技巧
1.6.5 错误异常处理方法
本章常见技术面试题
常见面试技巧之面试前的准备
本章小结
第2章 细节决定成败
2.1 Equals()和运算符==的区别
2.2 const和readonly的区别
2.3 private、protected、public和internal的区别
2.4 sealed、new、virtual、abstract与override
2.5 abstract class与interface
2.6 公共变量与属性的区别
2.7 参数修饰符params、out和ref的区别
2.8 值类型和引用类型的区别
2.9 结构与类的区别
2.10 Dispose()和Close()、Finalize()的区别
2.11 string和StringBuilder有什么区别
2.12 Debug版本和Release版本的区别
本章常见技术面试题
常见面试技巧之细节决定成败
本章小结
第3章 ASP.NET开发大杂烩
3.1 页面生命周期
3.1.1 独立页面生命周期事件顺序
3.1.2 具有Master页的生命周期事件顺序
3.1.3 ASP.NET生命周期详解
3.2 页面状态管理
3.2.1 Cookie
3.2.2 HtmlInputHidden隐藏域
3.2.3 ViewState
3.2.4 查询字符串Request
3.2.5 Aplication对象
3.2.6 Session对象
3.2.7 示例项目:在线用户列表统计
3.3 服务器和客户端数据交互
3.3.1 页面数据绑定全攻略
3.3.2 Bind和Eval的区别
3.4 ASP.NET编程中的技巧
3.4.1 页面之间传值的7种方法
3.4.2 get与post方法的区别
3.4.3 ASP.NET服务器控件和HTML控件的区别
3.4.4 Server.Transfer和Response.Redirect的区别
3.4.5 刷新页面的方法汇总
3.4.6 页面事件控制
3.4.7 在URL中传递中文的解决方案
3.4.8 增强用户体验的一些技巧
3.4.9 XHTML与HTML的区别
3.5 打造自己的页面基类PageBase
本章常见技术面试题
常见面试技巧之如何做好自我介绍
本章小结
第4章 Windows窗体编程你也行
4.1 创建简单的WinForm项目
4.2 创建MDI窗体应用
4.3 获取应用程序路径信息
4.4 回车跳转控件焦点
4.5 窗体间传递复杂数据
4.5.1 构造传递
4.5.2 公有字段传递
4.5.3 委托与事件传递
4.6 实现个性化窗体界面
4.7 无标题窗体拖动的两种方法
4.8 让程序只启动一次——单实例运行
4.9 实现系统托盘和热键呼出
4.10 进程与多线程的区别
4.11 创建多线程应用程序
4.12 WinForm开发常见问题
4.12.1 如何设置运行时窗体的起始位置
4.12.2 如何使一个窗体在屏幕的最顶端
4.12.3 实现窗体渐显效果
4.12.4 设置窗口背景为渐变色
4.12.5 模态窗口和非模态窗口
4.12.6 屏蔽窗口右上角的关闭操作
4.12.7 调用执行外部的程序
本章常见技术面试题
常见面试技巧之经典问题巧回答
本章小结
第5章 数据库开发
5.1 ADO.NET与抽水的故事
5.1.1 ADO.NET的定义
5.1.2 趣味理解ADO.NET对象模型
5.1.3 进水笼头——建立Connection
5.1.4 抽水机——Command
5.1.5 输水管——DataAdapter
5.1.6 输水管——DataReader
5.1.7 随用随关,释放资源
5.1.8 水库管理——DataSet
5.1.9 水池子——DataTable
5.2 数据库操作类的封装详解
5.2.1 执行命令方法的封装
5.2.2 查询数据方法的封装
5.2.3 数据统计方法的封装
5.2.4 实现SqlParameter方式
5.2.5 实现多数据库的访问
5.3 常用经典SQL语句
5.4 事务处理
5.4.1 SQL和存储过程级别的事务
5.4.2 ADO.NET级别的事务
5.4.3 ASP.NET页面级别的事务
5.4.4 企业级服务COM+事务
5.4.5 System.Transactions 事务处理
5.5 Oracle开发常见问题
5.5.1 Oracle和SQL Server的常用函数对比
5.5.2 Oracle和SQL Server的语句区别
5.5.3 ASP.NET连接Oracle失败的解决方法
本章常见技术面试题
常见面试技巧之经典问题巧回答
本章小结
第6章 关于XML
6.1 XML概述
6.1.1 XML和HTML有什么区别
6.1.2 XML的优势
6.2 文档结构与基本语法
6.3 XML操作
6.3.1 XmlDocument创建XML文档
6.3.2 XmlTextWriter创建XML文档
6.3.3 XmlDocument读取XML文档
6.3.4 XmlTextReader读取XML文档
6.3.5 在HTML中显示XML中的数据
6.3.6 JavaScript获取XML内容
6.3.7 项目案例:通用自定义XML配置类
6.4 ADO.NET与XML
6.4.1 读XML文档到DataSet
6.4.2 DataSet转为XML文档
6.5 项目案例1:实现网站的RSS应用
6.6 项目案例2:在线实现RSS阅读器
本章常见技术面试题
常见面试技巧之经典问题巧回答
本章小结
第7章 Web Service开发详解
7.1 Web Service基本概念
7.2 Web Service的应用场景
7.3 创建简单的Web Service项目应用
7.4 Web Service属性介绍
7.5 ASP.NET如何调用Web Service
7.6 JavaScript如何调用Web Service
7.6.1 通过webbehavior.htc调用Web Service
7.6.2 通过Microsoft.XMLDOM调用Web Service
7.6.3 XMLHTTP POST调用Web Service
7.6.4 SOAP调用Web Service
7.7 WinForm如何调用Web Service
7.7.1 .NET的WinForm调用Web Service
7.7.2 手动发送HTTP请求调用Web Service
7.8 实现异步调用Web Service
7.9 如何保证Web Service的安全
7.9.1 通过SoapHeader来增强Web Service的安全性
7.9.2 采用SSL实现加密传输
7.9.3 访问IP限制
7.10 Web Service开发中需要注意的 问题
本章常见技术面试题
常见面试技巧之经典问题巧回答
本章小结
第8章 用户体验的杀手锏——Ajax
8.1 Ajax概述
8.1.1 什么是Ajax
8.1.2 Ajax技术的核心
8.1.3 Ajax的工作原理
8.1.4 Ajax的优点
8.1.5 Ajax的问题
8.1.6 Ajax适用场景
8.1.7 Ajax不适用场景
8.1.8 XMLHttpRequest开发实例
8.2 微软VS.NET的Ajax开发
8.2.1 安装ASP.NET 2.0 Ajax Extensions
8.2.2 创建ASP.NET Ajax应用程序
8.2.3 ScriptManager控件使用技巧
8.2.4 UpdaetPanel控件使用技巧
8.2.5 AsyncPostBackTrigger实现外部控件引发局部刷新
8.2.6 Ajax错误处理
8.2.7 告诉用户你正在做什么——UpdateProgress控件
8.2.8 ASP.NET AjaxControToolKit简介
8.3 使用第三方组件 Ajax.dll 开发
8.4 使用第三方组件AjaxPro的开发
8.5 使用第三方组件MagicAjax的开发
8.6 Ajax开发原则
本章常见技术面试题
常见面试技巧之经典问题巧回答
本章小结
第9章 系统与文件操作
9.1 获取系统信息
9.1.1 用SystemInformation类获取系统信息
9.1.2 用Environment 类获取系统信息
9.1.3 通过WMI获取系统信息
9.1.4 用RegistryKey 类读取系统信息
9.1.5 用API函数获取系统信息
9.1.6 获取系统服务信息
9.2 文件操作
9.2.1 StreamWriter类实现写文件
9.2.2 通过File类创建文件
9.2.3 通过FileStream类创建文件
9.2.4 通过FileInfo类创建文件
9.2.5 追加文本
9.2.6 读取文本文件
9.2.7 读写二进制文件
9.2.8 文件复制、移动、删除
9.3 文件夹目录操作
9.4 读写INI文件
9.5 读写注册表
本章常见技术面试题
常见面试技巧之经典问题巧回答
本章小结
第10章 网络应用开发
10.1 Socket基本编程
10.1.1 Socket基本知识
10.1.2 Socket服务端开发步骤
10.1.3 Socket客户端开发步骤
10.2 异步Socket通信——实现MSN机器人
10.2.1 机器人服务端
10.2.2 客户端实现步骤
10.3 基于TCP协议的客户端和服务端
10.3.1 TcpListener 实现网络服务端
10.3.2 TcpClient实现网络客户端
本章常见技术面试题
常见面试技巧之经典问题巧回答
本章小结
第11章 Windows Service开发
11.1 什么是Windows服务
11.2 创建Windows服务
11.3 Windows服务开发常见问题
11.4 安装/卸载Windows服务
11.4.1 安装Windows服务
11.4.2 卸载Windows服务
11.4.3 Windows服务应用程序体系结构
11.5 调试Windows服务
11.5.1 日志调试法
11.5.2 附加进程断点调试法
本章常见技术面试题
职场智慧之初入江湖
本章小结
第12章 新技术初探
12.1 WPF 421
12.1.1 WPF简介 421
12.1.2 WPF何以令人佩服 422
12.1.3 XAML概述 422
12.1.4 WPF开发环境配置 423
12.1.5 项目示例:开发一个简单的WPF应用程序 424
12.2 WCF 427
12.2.1 SOA是什么 427
12.2.2 WCF是什么 428
12.2.3 WCF的优势是什么 428
12.2.4 WCF开发环境 431
12.2.5 项目示例:订票服务WCF开发步骤 431
12.3 LINQ 440
12.3.1 LINQ的架构 441
12.3.2 传统的查询 441
12.3.3 LINQ查询实例 444
12.3.4 LINQ查询语法 448
本章常见技术面试题 449
职场智慧之学习方法 449
本章小结 450
第二篇 系统架构设计思想
第13章 面向对象思想
13.1 为什么要面向对象 454
13.2 什么是面向对象 456
13.3 面向对象的特点 458
13.3.1 封装 459
13.3.2 继承 459
13.3.3 多态 460
13.4 面向对象设计和开发实例 466
13.4.1 传统过程化设计实现播放器功能 466
13.4.2 基于面向对象设计实现播放器功能 467
13.4.3 面向对象封装、继承、多态的应用 468
13.4.4 设计模式、条件外置及反射技术的应用 471
13.5 面向对象分析(OOA)的方法 475
13.6 面向对象设计的原则 478
13.6.1 优先使用(对象)组合,而非(类)继承 478
13.6.2 针对接口编程,而非(接口的)实现 481
13.6.3 开放-封闭法则(OCP) 482
13.6.4 Liskov替换法则(LSP) 485
13.6.5 单一职责原则(SRP) 486
13.6.6 依赖倒置原则(DIP) 486
13.6.7 接口分离原则(ISP) 489
13.6.8 面向对象设计时需要注意的问题 490
本章常见技术面试题 491
本章小结 491
第14章 三层架构项目开发
14.1 什么是三层架构 494
14.1.1 常用的三层架构设计 494
14.1.2 趣味理解:三层架构与养猪 496
14.2 为什么要用三层架构 497
14.3 三层架构项目开发示例 500
14.3.1 数据库设计 500
14.3.2 创建整体解决方案 501
14.3.3 业务实体Model的实现 502
14.3.4 数据访问层的实现 504
14.3.5 业务逻辑层的实现 509
14.3.6 表示层的实现 510
14.4 实现基于工厂模式的三层架构 512
14.4.1 扩展新增数据访问层 512
14.4.2 IDAL抽象接口的实现 513
14.4.3 创建DAL对象的封装 517
14.4.4 实现抽象工厂模式 519
14.4.5 工厂模式的三层架构图 521
本章常见技术面试题 522
职场智慧之程序员的职业规划 523
本章小结 524
第15章 大型网站的性能优化与安全
15.1 高效C#编码优化 526
15.2 页面(HTML)优化的方法 534
15.3 ASP.NET开发性能优化 540
15.3.1 如没必要,尽量使用静态HTML页面 540
15.3.2 避免不必要的回送操作 541
15.3.3 尽量在客户端进行用户输入验证 541
15.3.4 关闭不必要的Session状态 542
15.3.5 优先使用HTML控件,而非服务器控件 542
15.3.6 不必要时关闭ViewState 542
15.3.7 禁用调试模式 543
15.4 系统缓存管理 543
15.4.1 缓存的分类 544
15.4.2 传统缓存方式 545
15.4.3 页面输出缓存 545
15.4.4 页面输出缓存API 548
15.4.5 页面局部缓存 549
15.4.6 应用程序数据缓存 554
15.4.7 文件缓存依赖 555
15.4.8 数据库缓存依赖 557
15.4.9 Memcached——分布式缓存系统 560
15.4.10 Cacheman——.NET架构下的分布式缓存项目 561
15.5 数据库访问性能优化 562
15.5.1 选择合适的.NET数据供应器 563
15.5.2 及时地关闭数据库连接 563
15.5.3 跟踪监视SQL Server当前链接池状态 564
15.5.4 善用数据库的存储过程 567
15.5.5 SqlDataRead和Dataset的选择 567
15.5.6 ExecuteNonQuery和ExecuteScalar的选择 568
15.5.7 数据的绑定DataBinder 568
15.5.8 使用DataReader的注意事项 568
15.5.9 Command对象的使用 569
15.5.10 反复地执行SQL语句用 Prepare() 569
15.5.11 分页的数据访问 570
15.5.12 SQL命令的优化 570
15.5.13 tempdb的使用技巧 572
15.5.14 使用视图代替跨库操作 572
15.5.15 尽量避免大事务操作 572
15.5.16 尽量避免使用游标 573
15.5.17 为你的表建立适当的索引 573
15.6 网站安全防护 573
15.6.1 什么是SQL注入式攻击 573
15.6.2 如何防范SQL注入式攻击 574
15.6.3 实现页面验证码 575
15.6.4 实现文件防盗链 579
15.6.5 采用HTTPS进行访问 584
15.7 IIS优化 584
15.7.1 如何监测IIS服务器并发数 584
15.7.2 采用Gzip压缩页面优化 585
15.7.3 网站应用程序池配置 588
15.8 网站架构优化策略 593
本章常见技术面试题 596
职场智慧之独善其身 596
本章小结 599
第16章 系统设计的原则和技巧
16.1 系统设计的一些原则 602
16.1.1 最适合的才是最好的 602
16.1.2 以不变应万变 603
16.1.3 可扩展性 603
16.1.4 可复用性 604
16.2 系统设计的常用方法 604
16.3 敏捷软件开发12条原则 608
16.4 系统架构师成长之路 611
本章常见技术面试题 615
职场智慧之职场政治 615
本章小结 616
第三篇 项目实战解析
第17章 权限角色管理项目解析
17.1 权限角色管理概述 620
17.2 项目概述 623
17.3 数据库设计 624
17.3.1 数据库实体关系模型 624
17.3.2 表结构设计 625
17.4 数据访问层 627
17.4.1 类设计 627
17.4.2 代码实现 629
17.5 业务逻辑层 629
17.5.1 类设计 630
17.5.2 扩展.NET Framework用户处理机制 632
17.6 接口调用与Web管理实现 638
17.6.1 Web.config配置 638
17.6.2 用户身份和权限验证 638
17.6.3 用户验证接口方式:权限验证用户控件 640
17.6.4 用户验证接口方式:页面基类 642
17.6.5 用户和角色权限的后台管理 644
职场智慧之如何提升自己在公司的价值 652
本章小结 653
第18章 单点登录系统的设计与实现
18.1 项目概述 656
18.1.1 名词定义 656
18.1.2 项目需求描述 656
18.2 业务流程设计 657
18.2.1 用户认证流程 657
18.2.2 安全验证流程 658
18.3 功能与接口设计 659
18.3.1 接*互设计 659
18.3.2 应用系统接口 660
18.3.3 认证服务器功能和接口 660
18.4 数据库设计 660
18.4.1 数据库实体关系模型 661
18.4.2 表结构设计 661
18.5 实现认证服务器 662
18.5.1 SSO解决方案 663
18.5.2 系统管理后台 664
18.5.3 用户通行证管理中心 665
18.5.4 认证服务器接口开发 673
18.6 应用系统接入接口开发 675
18.6.1 用户身份认证 675
18.6.2 接收状态同步 676
18.6.3 用户注销 678
18.6.4 更新认证服务器状态 679
18.7 接口封装及调用 679
职场智慧之晋升之道 682
本章小结 684
第19章 常用.NET开发工具介绍
19.1 源码版本管理:Visual SourceSafe 2005 686
19.1.1 安装和配置VSS 2005服务端 686
19.1.2 安装和配置VSS客户端 691
19.1.3 将项目加入VSS版本控制 692
19.1.4 客户端连接VSS 服务器获取源代码 694
19.1.5 设置VSS支持通过Internet访问 696
19.1.6 版本控制的几个概念 701
19.1.7 VSS项目权限管理 703
19.1.8 VSS数据备份 705
19.1.9 VSS 2005的使用规范 707
19.2 单元测试工具:NUnit 708
19.2.1 NUnit简介 708
19.2.2 手把手教你在.NET中应用NUnit 708
19.3 日志工具——Log4net 714
19.3.1 Log4net简介 714
19.3.2 使用步骤 717
19.3.3 单独配置文件的使用 719
19.4 代码规范检查工具:Microsoft Source Analysis for C# 721
19.5 生成文档注释工具:GhostDoc 723
19.6 反编译工具:Reflector for .NET 732
19.7 动软.NET代码生成器 733
19.8 帮助文档生成工具:Sandcastle 737
19.8.1 Sandcastle介绍 737
19.8.2 生成方式 738
19.8.3 具体生成步骤 740
本章小结 748
附录A 软件编码规范
A.1 概述 750
A.1.1 规范基本原则 750
A.1.2 术语定义 750
A.1.3 文件命名组织 750
A.2 代码外观 751
A.2.1 列宽 751
A.2.2 换行 751
A.2.3 缩进 751
A.2.4 空行 751
A.2.5 空格 752
A.2.6 括号——() 753
A.2.7 花括号——{} 753
A.3 程序注释 754
A.3.1 注释概述 754
A.3.2 文档型注释 755
A.3.3 类注释 755
A.3.4 单行注释 755
A.3.5 注释标签 756
A.4 声明 758
A.4.1 每行声明数 758
A.4.2 初始化 758
A.4.3 位置 758
A.4.4 类和接口的声明 759
A.4.5 字段的声明 759
A.5 命名规范 759
A.5.1 命名概述 759
A.5.2 大写规则 760
A.5.3 缩写 761
A.5.4 命名空间 761
A.5.5 类 762
A.5.6 接口 762
A.5.7 属性(Attribute) 763
A.5.8 枚举(Enum) 763
A.5.9 参数 763
A.5.10 方法 764
A.5.11 属性(property) 764
A.5.12 事件 765
A.5.13 常量(const) 766
A.5.14 字段 767
A.5.15 静态字段 768
A.5.16 集合 768
A.5.17 措词 768
A.6 语句 769
A.6.1 每行一个语句 769
A.6.2 复合语句 769
A.6.3 return语句 769
A.6.4 if、if-else、if else-if语句 770
A.6.5 for、foreach 语句 770
A.6.6 while语句 771
A.6.7 do-while语句 771
A.6.8 switch-case语句 771
A.6.9 try-catch语句 772
A.6.10 using块语句 772
A.6.11 goto语句 772
A.7 其他 773
A.7.1 表达式 773
A.7.2 类型转换 773
A.8 匈牙利命名法 773
A.9 控件命名规则 774
A.9.1 一般命名方法 774
A.9.2 主要控件名简写对照表 774
Platform: |
Size: 7456954 |
Author: jackws@tom.comjackws |
Hits:
Description: 目 录 译者序 前言 第一部分 程序员必读 第1章 对程序错误的处理 1 1.1 定义自己的错误代码 4 1.2 ErrorShow示例应用程序 5 第2章 Unicode 11 2.1 字符集 11 2.1.1 单字节与双字节字符集 11 2.1.2 Unicode:宽字节字符集 12 2.2 为什么使用Unicode 13 2.3 Windows 2000与Unicode 13 2.4 Windows 98与Unicode 13 2.5 Windows CE与Unicode 14 2.6 需要注意的问题 14 2.7 对COM的简单说明 14 2.8 如何编写Unicode源代码 15 2.8.1 C运行期库对Unicode的支持 15 2.8.2 Windows定义的Unicode数据类型 17 2.8.3 Windows中的Unicode函数和ANSI 函数 17 2.8.4 Windows字符串函数 19 2.9 成为符合ANSI和Unicode的应用程序 19 2.9.1 Windows字符串函数 19 2.9.2 资源 22 2.9.3 确定文本是ANSI文本还是Unicode 文本 22 2.9.4 在Unicode与ANSI之间转换字符串 23 第3章 内核对象 27 3.1 什么是内核对象 27 3.1.1 内核对象的使用计数 27 3.1.2 安全性 28 3.2 进程的内核对象句柄表 30 3.2.1 创建内核对象 30 3.2.2 关闭内核对象 32 3.3 跨越进程边界共享内核对象 32 3.3.1 对象句柄的继承性 32 3.3.2 改变句柄的标志 35 3.3.3 命名对象 36 3.3.4 终端服务器的名字空间 39 3.3.5 复制对象句柄 39 第二部分 编程的具体方法 第4章 进程 45 4.1 编写第一个Windows应用程序 46 4.1.1 进程的实例句柄 49 4.1.2 进程的前一个实例句柄 50 4.1.3 进程的命令行 50 4.1.4 进程的环境变量 51 4.1.5 进程的亲缘性 54 4.1.6 进程的错误模式 54 4.1.7 进程的当前驱动器和目录 54 4.1.8 进程的当前目录 55 4.1.9 系统版本 56 4.2 CreateProcess函数 58 4.2.1 pszApplicationName和 pszCommandLine 59 4.2.2 psa Process、psa Thread和 binherit Handles 60 4.2.3 fdwCreate 62 4.2.4 pvEnvironment 64 4.2.5 pszCurDir 64 4.2.6 psiStartInfo 64 4.2.7 ppiProcInfo 67 4.3 终止进程的运行 69 4.3.1 主线程的进入点函数返回 69 4.3.2 ExitProcess函数 69 4.3.3 TerminateProcess函数 70 4.3.4 进程终止运行时出现的情况 71 4.4 子进程 72 4.5 枚举系统中运行的进程 73 第5章 作业 91 5.1 对作业进程的限制 93 5.2 将进程放入作业 99 5.3 终止作业中所有进程的运行 99 5.4 查询作业统计信息 100 5.5 作业通知信息 103 5.6 JobLab示例应用程序 104 第6章 线程的基础知识 121 6.1 何时创建线程 121 6.2 何时不能创建线程 122 6.3 编写第一个线程函数 123 6.4 CreateThread函数 124 6.4.1 psa 124 6.4.2 cbStack 124 6.4.3 pfnStartAddr和pvParam 125 6.4.4 fdwCreate 126 6.4.5 pdwThreadID 126 6.5 终止线程的运行 127 6.5.1 线程函数返回 127 6.5.2 ExitThread函数 127 6.5.3 TerminateThread函数 127 6.5.4 在进程终止运行时撤消线程 128 6.5.5 线程终止运行时发生的操作 128 6.6 线程的一些性质 129 6.7 C/C++运行期库的考虑 131 6.7.1 Oops—错误地调用了Create Thread 138 6.7.2 不应该调用的C/C++运行期库函数 138 6.8 对自己的ID概念应该有所了解 139 第7章 线程的调度、优先级和亲缘性 142 7.1 暂停和恢复线程的运行 143 7.2 暂停和恢复进程的运行 144 7.3 睡眠方式 145 7.4 转换到另一个线程 145 7.5 线程的运行时间 146 7.6 运用环境结构 148 7.7 线程的优先级 152 7.8 对优先级的抽象说明 153 7.9 程序的优先级 156 7.9.1 动态提高线程的优先级等级 158 7.9.2 为前台进程调整调度程序 159 7.9.3 Scheduling Lab示例应用程序 160 7.10 亲缘性 167 第8章 用户方式中线程的同步 172 8.1 原子访问:互锁的函数家族 172 8.2 高速缓存行 177 8.3 高级线程同步 178 8.4 关键代码段 180 8.4.1 关键代码段准确的描述 182 8.4.2 关键代码段与循环锁 185 8.4.3 关键代码段与错误处理 185 8.4.4 非常有用的提示和技巧 186 第9章 线程与内核对象的同步 190 9.1 等待函数 191 9.2 成功等待的副作用 194 9.3 事件内核对象 195 9.4 等待定时器内核对象 204 9.4.1 让等待定时器给APC项排队 207 9.4.2 定时器的松散特性 209 9.5 信标内核对象 210 9.6 互斥对象内核对象 211 9.6.1 释放问题 213 9.6.2 互斥对象与关键代码段的比较 214 9.6.3 Queue示例应用程序 214 9.7 线程同步对象速查表 223 9.8 其他的线程同步函数 224 9.8.1 异步设备I/O 224 9.8.2 WaitForInputIdle 224 9.8.3 MsgWaitForMultipleObjects (Ex) 225 9.8.4 WaitForDebugEvent 225 9.8.5 SingleObjectAndWait 226 第10章 线程同步工具包 228 10.1 实现关键代码段:Optex 228 10.2 创建线程安全的数据类型和反信标 239 10.3 单个写入程序/多个阅读程序的保护 251 10.4 实现一个WaitForMultipleExpressions 函数 259 第11章 线程池的使用 274 11.1 方案1:异步调用函数 275 11.2 方案2:按规定的时间间隔调用函数 277 11.3 方案3:当单个内核对象变为已通知状态 时调用函数 283 11.4 方案4:当异步I/O请求完成运行时调用 函数 285 第12章 纤程 287 12.1 纤程的操作 287 12.2 Counter示例应用程序 289 第三部分 内 存 管 理 第13章 Windows的内存结构 299 13.1 进程的虚拟地址空间 299 13.2 虚拟地址空间如何分区 300 13.2.1 NuLL 指针分配的分区—适用于 Windows 2000和Windows 98 300 13.2.2 MS-DOS/16位Windows 应用程序兼容 分区—仅适用于Windows 98 301 13.2.3 用户方式分区—适用于Windows 2000 和Windows 98 301 13.2.4 64 KB禁止进入的分区—仅适用 于Windows 2000 302 13.2.5 共享的MMF分区—仅适用于 Windows 98 303 13.2.6 内核方式分区—适用于Windows 2000和Windows 98 303 13.3 地址空间中的区域 303 13.4 提交地址空间区域中的物理存储器 304 13.5 物理存储器与页文件 304 13.6 保护属性 307 13.6.1 Copy-On-Write 访问 308 13.6.2 特殊的访问保护属性的标志 309 13.7 综合使用所有的元素 309 13.7.1 区域的内部情况 312 13.7.2 与Windows 98地址空间的差别 315 13.8 数据对齐的重要性 319 第14章 虚拟内存 323 14.1 系统信息 323 14.2 虚拟内存的状态 330 14.3 确定地址空间的状态 336 14.3.1 VMQuery函数 337 14.3.2 虚拟内存表示例应用程序 343 第15章 在应用程序中使用虚拟内存 354 15.1 在地址空间中保留一个区域 354 15.2 在保留区域中的提交存储器 355 15.3 同时进行区域的保留和内存的提交 356 15.4 何时提交物理存储器 357 15.5 回收虚拟内存和释放地址空间区域 358 15.5.1 何时回收物理存储器 359 15.5.2 虚拟内存分配的示例应用程序 360 15.6 改变保护属性 368 15.7 清除物理存储器的内容 369 15.8 地址窗口扩展—适用于 Windows 2000 372 第16章 线程的堆栈 385 16.1 Windows 98下的线程堆栈 387 16.2 C/C++运行期库的堆栈检查函数 389 16.3 Summation示例应用程序 390 第17章 内存映射文件 397 17.1 内存映射的可执行文件和DLL 文件 397 17.1.1 可执行文件或DLL的多个实例 不能共享静态数据 398 17.1.2 在可执行文件或DLL的多个实 例之间共享静态数据 400 17.1.3 AppInst示例应用程序 404 17.2 内存映射数据文件 409 17.2.1 方法 1:一个文件,一个缓存 409 17.2.2 方法 2:两个文件,一个缓存 409 17.2.3 方法 3:一个文件,两个缓存 410 17.2.4 方法 4:一个文件,零缓存 410 17.3 使用内存映射文件 410 17.3.1 步骤 1:创建或打开文件内核 对象 411 17.3.2 步骤 2:创建一个文件映射内核 对象 412 17.3.3 步骤 3:将文件数据映射到进程 的地址空间 414 17.3.4 步骤4:从进程的地址空间中撤消 文件数据的映像 416 17.3.5 步骤 5和步骤 6:关闭文件映射对象 和文件对象 417 17.3.6 文件倒序示例应用程序 418 17.4 使用内存映射文件来处理大文件 426 17.5 内存映射文件与数据视图的相关性 427 17.6 设定内存映射文件的基地址 428 17.7 实现内存映射文件的具体方法 429 17.8 使用内存映射文件在进程之间共享 数据 431 17.9 页文件支持的内存映射文件 431 17.10 稀疏提交的内存映射文件 438 第18章 堆栈 451 18.1 进程的默认堆栈 451 18.2 为什么要创建辅助堆栈 452 18.2.1 保护组件 452 18.2.2 更有效的内存管理 453 18.2.3 进行本地访问 453 18.2.4 减少线程同步的开销 453 18.2.5 迅速释放堆栈 453 18.3 如何创建辅助堆栈 454 18.3.1 从堆栈中分配内存块 455 18.3.2 改变内存块的大小 456 18.3.3 了解内存块的大小 456 18.3.4 释放内存块 457 18.3.5 撤消堆栈 457 18.3.6 用C++程序来使用堆栈 457 18.4 其他堆栈函数 460 第四部分 动态链接库 第19章 DLL基础 463 19.1 DLL与进程的地址空间 464 19.2 DLL的总体运行情况 465 19.3 创建DLL模块 467 19.3.1 输出的真正含义是什么 469 19.3.2 创建用于非Visual C++工具 的DLL 471 19.4 创建可执行模块 472 19.5 运行可执行模块 474 第20章 DLL的高级操作技术 477 20.1 DLL模块的显式加载和 符号链接 477 20.1.1 显式加载DLL模块 478 20.1.2 显式卸载DLL模块 479 20.1.3 显式链接到一个输出符号 480 20.2 DLL的进入点函数 481 20.2.1 DLL_PROCESS_ATTACH通知 482 20.2.2 DLL_PROCESS_DETACH通知 483 20.2.3 DLL_THREAD_ATTACH通知 485 20.2.4 DLL_THREAD_DETACH通知 485 20.2.5 顺序调用DllMain 486 20.2.6 DllMain与C/C++运行期库 488 20.3 延迟加载DLL 489 20.4 函数转发器 499 20.5 已知的DLL 499 20.6 DLL转移 500 20.7 改变模块的位置 501 20.8 绑定模块 506 第21章 线程本地存储器 509 21.1 动态TLS 509 21.2 静态TLS 513 第22章 插入DLL和挂接API 515 22.1 插入DLL:一个例子 515 22.2 使用注册表来插入DLL 517 22.3 使用Windows挂钩来插入DLL 518 22.4 使用远程线程来插入DLL 531 22.4.1 Inject Library 示例应用程序 534 22.4.2 Image Walk DLL 541 22.5 使用特洛伊DLL来插入DLL 544 22.6 将DLL作为调试程序来插入 544 22.7 用Windows 98上的内存映射文件 插入代码 544 22.8 用CreateProcess插入代码 544 22.9 挂接API的一个示例 545 22.9.1 通过改写代码来挂接API 546 22.9.2 通过操作模块的输入节来挂接API 546 22.9.3 LastMsgBoxInfo示例应用程序 549 第五部分 结构化异常处理 第23章 结束处理程序 565 23.1 通过例子理解结束处理程序 566 23.2 Funcenstein1 566 23.3 Funcenstein2 566 23.4 Funcenstein3 568 23.5 Funcfurter1 568 23.6 突击测验:FuncaDoodleDoo 569 23.7 Funcenstein4 570 23.8 Funcarama1 571 23.9 Funcarama2 572 23.10 Funcarama3 572 23.11 Funcarama4:最终的边界 573 23.12 关于finally块的说明 574 23.13 Funcfurter2 575 23.14 SEH结束处理示例程序 576 第24章 异常处理程序和软件异常 578 24.1 通过例子理解异常过滤器和异常处理 程序 578 24.1.1 Funcmeister1 578 24.1.2 Funcmeister2 579 24.2 EXCEPTION_EXECUTE_HANDLER 580 24.2.1 一些有用的例子 581 24.2.2 全局展开 583 24.2.3 暂停全局展开 585 24.3 EXCEPTION_CONTINUE_ EXECUTION 586 24.4 EXCEPTION_CONTINUE_ SEARCH 588 24.5 Get Exception Code 589 24.6 Get Exception Information 592 24.7 软件异常 595 第25章 未处理异常和C++异常 598 25.1 即时调试 600 25.2 关闭异常消息框 601 25.2.1 强制进程终止运行 601 25.2.2 包装一个线程函数 601 25.2.3 包装所有的线程函数 601 25.2.4 自动调用调试程序 602 25.3 程序员自己调用UnhandledException Filter 602 25.4 UnhandledExceptionFilter函数的一些 细节 603 25.5 异常与调试程序 604 25.6 C++异常与结构性异常的对比 618 第六部分 窗 口 第26章 窗口消息 623 26.1 线程的消息队列 623 26.2 将消息发送到线程的消息队列中 625 26.3 向窗口发送消息 626 26.4 唤醒一个线程 630 26.4.1 队列状态标志 630 26.4.2 从线程的队列中提取消息的 算法 631 26.4.3 利用内核对象或队列状态标 志唤醒线程 634 26.5 通过消息发送数据 636 26.6 Windows如何处理ANSI/Unicode 字符和字符串 642 第27章 硬件输入模型和局部输入状态 645 27.1 原始输入线程 645 27.2 局部输入状态 646 27.2.1 键盘输入与焦点 647 27.2.2 鼠标光标管理 649 27.3 将虚拟输入队列同局部输入状态挂接 在一起 651 27.3.1 LISLab 示例程序 652 27.3.2 LISWatch 示例程序 666 第七部分 附 录 附录A 建立环境 675 附录B 消息分流器、子控件宏和API宏 686
Platform: |
Size: 36814984 |
Author: mrf341@163.com |
Hits:
Description: 对于入门的dsp初学者来说,是个很经典的材料-entry for the dsp beginners, is a classic material
Platform: |
Size: 354304 |
Author: 李旭 |
Hits:
Description: 这是一个DM642平台下测试UART的串口程序。
其功能是采用中断的方式完成串口数据的接收的。帮助使用者很好的了解UART编程。-This is a test platform DM642 UART Serial procedures. Its function is to interrupt the completion of the serial data received. Help users understand the UART good programming.
Platform: |
Size: 234496 |
Author: 聂晟楠 |
Hits:
Description: 这是一个测试德州仪器公司新出一款DSP642处理器程序,主要完成uart的测试,已编译通过!-This is a Texas Instruments testing new one which DSP642 processor procedures, uart the major tests, compiled through!
Platform: |
Size: 77824 |
Author: 张大 |
Hits:
Description: dm642网络传输程序,可以直接使用,不过需要重新将PC主机的IP地址更改一下,-dm642 network transmission procedures can be used directly, But the need to reintegrate the PC host's IP address a change,
Platform: |
Size: 6370304 |
Author: 黄河 |
Hits:
Description: C6000DSP的入门资料,很好的啊,欢迎大家下载,要顶啊!-C6000DSP introductory information, a very good ah, welcome everyone to download, it is necessary to顶啊!
Platform: |
Size: 731136 |
Author: 王请 |
Hits:
Description: TI DM642开发的实用程序:
包括:YUV视频格式转换成RGB格式C版本程序、ASM版本程序以及有关中值滤波的C程序;
相当有用!
Platform: |
Size: 16384 |
Author: 陆小锋 |
Hits:
Description: 很多人在进行图像采集的时候都用到DM642,这里提供一份详细介绍DM642的资料以及相关实验-Many people during the image acquisition time are used in DM642, here provide a detailed introduction DM642 information and related experiments
Platform: |
Size: 1765376 |
Author: eileen |
Hits:
Description: dm642pci加载代码
DM642 DSP PCI loader, could be reformed to working in a different OS.-err
Platform: |
Size: 5120 |
Author: 王久明 |
Hits:
Description: DM642原理图大杂烩,用到不同的片子,有很强的参考价值 -DM642 schematics hodgepodge, used a different film, has a strong reference value
Platform: |
Size: 3248128 |
Author: 欧阳峰 |
Hits:
Description: 基于642的sd卡读写程序,文件系统为fat16,读写函数已经调通,其他模块框架是完整的,但是没有使用-Based on the sd card reader 642 procedures, documentation systems for fat16, read and write function has been transferred Qualcomm, other module is a complete framework, but did not use
Platform: |
Size: 628736 |
Author: lshp |
Hits:
Description: CCNP 642-892题库的第二部分50题,由于太大分开来上传。-CCNP 642-892 questions the second part of question 50, as a result of too much to upload separately.
Platform: |
Size: 4739072 |
Author: 陈晨 |
Hits:
Description: CCNP 642-892题库的最后一部分。由于太大分开来上传了。-CCNP 642-892 the last part of question bank. As a result of too much to upload a separate.
Platform: |
Size: 2481152 |
Author: 陈晨 |
Hits:
Description: Cisco 642-586考题
Cisco® Advanced Wireless LAN for System Engineers
Q&A v 2.5-Cisco 642-586
Cisco® Advanced Wireless LAN for System Engineers
Q&A v 2.5
Platform: |
Size: 1287168 |
Author: |
Hits:
Description: 一份经典的642原理图,非常详细实用。可以借鉴-Schematic diagram of a 642 classic, very detailed and practical. Can learn
Platform: |
Size: 225280 |
Author: 汤晓磊 |
Hits:
Description: Davies , K.H., Biddulph, R. and Balashek, S. (1952) Automatic Speech Recognition of Spoken Digits, J. Acoust. Soc. Am. 24(6) pp.637 - 642
Platform: |
Size: 100352 |
Author: shreya |
Hits:
Description: 1、分别生成两种信号(正弦波、方波、三角波、锯齿波、Sinc波形等)+噪声(高斯随机噪声、均匀噪声)
要求:频率:学号*100;
幅度:学号/10
相位:学号*pi/180
点数:学号*64
2、同时在一个图形中进行显示:
要求:标注X轴、Y轴、题目、颜色、样式、线型标注等。
3、进行信号分析及结果显示(对结果也要图形标注,同2)
要求:相关分析
卷积运算
求和运算
频谱分析(最大值、测频)
4、对上述原信号及信号分析结果分别存成EXCEL文件、文本文件和二进制文件,命名为名字+班级+学号+后缀-1, respectively, to generate two signals (sine wave, square wave, triangle wave, sawtooth wave, Sinc waveform, etc.)+ noise (Gaussian random noise, uniform noise) requirements: Frequency: No.* 100 margin: Student ID/10 phase: learning* pi/180 Points: No.* 642, in a graphical display: Requirements: X-axis label, Y axis, the title, color, style, linear marked. 3, signal analysis and results display (graphical results also marked with 2) requirements: analysis convolution summation spectrum analysis (maximum frequency measurement) 4, the original signal and the signal analysis results were kept into EXCEL files, text files and binary files, named for Name the+ class++ suffix number
Platform: |
Size: 1024 |
Author: 吉王飞 |
Hits:
Description: 描述MINI642开发板的用户文档,介绍得非常详细,对用642开发板进行视频图像开发的朋友,有很大的帮助。-User Documentation the description MINI642 development board, presented a very detailed video image developed on 642 development board friend, a great help.
Platform: |
Size: 559104 |
Author: 刘洋 |
Hits:
Description: Generating manipulator trajectories considering
multiple objectives with kinematics and dynamics
constraints is a non-trivial optimization. In this paper,
a constrained multi-objective genetic algorithm
(MOGA) based technique is proposed to address this
problem for a general motor-driven parallel kinematic
manipulator.-生成机械手轨迹考虑 多个目标的运动学和动力学约束是一个简单的优化。在本文中, 约束多目标遗传算法 )技术提出了解决这一问题 问题一般电机驱动的平行运动操纵者。
Platform: |
Size: 19379200 |
Author: 南文虎 |
Hits: