Visual C++ 2012 开发权威指南

978-7-115-36220-9
作者: 尹成 朱景尧 孙明龙 胡耀文
译者:
编辑: 张涛
分类: C++

图书目录:

目 录

第 1章 Visual Studio 2012的新特性 1

1.1 如何安装Windows 8 1

1.2 如何安装Visual Studio 2012 12

1.3 Metro新特性 15

1.4 Visual Studio 2012新特性 16

1.4.1 Visual Studio 2012(VS2012)的六大技术特点 16

1.4.2 Visual Studio 2012九大新功能 16

第 2章 Visual C++2012语言新特性 21

2.1 Visual C++2012的语言新特性(1) 21

2.2 Visual C++2012的语言新特性(2) 24

2.3 Visual C++2012的语言新特性(3) 31

第3章 Visual C++2012的异步编程与网络编程 34

3.1 使用C++的异步编程 34

3.1.1 使用C++为Metro风格应用创建异步操作 41

3.1.2 task Class(Concurrency Runtime) 52

3.1.3 任务并行度(并发进行时) 64

3.2 使用C++的网络编程 68

3.2.1 Windows::Web::Syndication 68

3.2.2 使用XML HTTP请求(IXHR2)连接访问Web服务 70

3.2.3 WebView显示网页 72

3.2.4 连接到对等机、Web和网络服务 73

第4章 基于Visual C++实现并行编程充分利用多核处理能力 75

4.1 PPL简介 75

4.2 任务并行(并发运行时) 77

4.2.1 任务和任务组 77

4.2.2 task_group与structured_task_group的比较 78

4.2.3 示例 79

4.3 并行算法 80

4.3.1 parallel_for算法 81

4.3.2 parallel_for_each算法 82

4.3.3  parallel_invoke算法 83

4.4 并行容器和对象 84

4.4.1 concurrent_vector 84

4.4.2 concurrent_queue类 87

4.4.3 combinable类 88

4.5 PPL中的取消操作 88

4.5.1 并行工作树 89

4.5.2 取消并行任务 90

4.5.3 取消并行算法 94

4.5.4 何时不使用取消 95

4.6 并发运行 96

4.6.1 抢先式和协作式计划 96

4.6.2 比较并发运行时与Windows API 97

4.6.3 比较并发运行时与OpenMP 98

第5章 基于Visual C++充分使用GPU的计算能力 99

5.1 C ++存储系统概述 99

5.1.1 索引类 101

5.1.2 扩展盘区类 102

5.1.3 数组类 102

5.1.4 array_view类 103

5.1.5 阵列和array_view的比较 103

5.1.6 数学库 106

5.1.7 图形库 107

5.2 使用Lambda、函数对象和受限功能 107

5.2.1 Lambda表达式 108

5.2.2 Function对象 109

5.2.3 C++的受限制存储系统函数 110

5.3 Using Tiles如何加快AMP C ++代码中使用拼贴 110

5.3.1 示例的全局、平铺和局部索引 111

5.3.2 平铺同步——tile_static和tile_barrier::wait 114

5.3.3 争用条件 116

5.3.4 内存范围 116

5.4 使用快捷键和accelerator_view对象 117

5.4.1 使用默认加速器 118

5.4.2 选择快捷键 118

5.4.3 更改默认加速器 119

5.4.4 使用多个加速器 120

5.4.5 特殊的加速键 120

5.4.6 互操作性 120

5.5 Graphics (C++AMP) 120

5.5.1 短矢量库 121

5.5.2 纹理类 122

5.5.3 互操作性 122

5.6 Walkthrough: Matrix Multiplication 122

5.6.1 创建项目 123

5.6.2 未使用拼贴情况下的乘法 123

5.6.3 使用拼贴情况下的乘法 125

5.7 调试C++AMP应用程序 128

创建示例项目 129

5.8 C++AMP案例1 135

5.8.1 主函数——入口点 135

5.8.2 CPU卷积——C ++的串行 135

5.8.3 convolution_tile_dim——C++中的AMP平铺内核 135

5.9 C++AMP案例2 136

第6章 基于Visual C++2012开发Blank App 140

6.1 Metro控件大全 140

6.1.1 Border控件 143

6.1.2 Button控件 145

6.1.3 Canvas控件 146

6.1.4 Check Box控件 148

6.1.5 Combo Box控件 149

6.1.6 FlipView控件 151

6.1.7 GridView控件 154

6.1.8 SemanticZoom控件 155

6.1.9 HyperlinkButton控件 162

6.1.10 Image和ImageBrush控件 162

6.1.11 ItemsControl控件 164

6.1.12 ListBox控件 165

6.1.13 ListView控件 165

6.1.14 TextBox控件 169

6.1.15 PasswordBox控件 170

6.1.16 弹出菜单 171

6.1.17 进度控件 171

6.1.18 Slider控件 174

6.1.19 StackPanel控件 175

6.1.20 切换按钮 176

6.1.21 切换开关 176

6.1.22 工具提示 176

6.1.23 VariableSizedWrapGrid 177

6.1.24 Viewbox 177

6.1.25 Web视图 178

6.2 Metro基础开发讲解 178

6.2.1 应用栏 178

6.2.2 上下文菜单 182

6.2.3 布局和视图 183

6.2.4 导航 188

6.2.5 笔和触笔输入 192

6.2.6 资源 192

6.2.7 磁贴 198

6.2.8 消息通知 210

6.2.9 触控输入 215

6.3 Metro Blank App案例 220

6.3.1 案例1 220

6.3.2 案例2 224

6.3.3 案例3 226

第7章 基于Visual C++2012开发Grid App 229

7.1 案例1 利用模板创建自己的应用 230

7.1.1 项目和组 231

7.1.2 将组和项目数据绑定到UI 232

7.2 案例2 在项目模板中实现自己的数据源 233

第8章 基于Visual C++2102开发Split App 237

8.1 简单博客阅读器(1) 237

8.2 简单博客阅读器(2) 258

8.3 总结 286

第9章 基于Visual C++2012开发Metro DLL 287

9.1 Metro dll概述 287

9.2 实例 创建一个metro dll 287

9.3 实例 在项目中引用metro dll 288

第 10章 基于Visual C++2012开发Metro Component 289

10.1 Windows运行时组件简介 289

10.2 在C++中创建Windows运行时组件 289

10.2.1 大小写和命名规则 290

10.2.2 实例化对象 290

10.2.3 C++内置类型、库类型和Windows运行时类型 290

10.2.4 DateTime 292

10.2.5 集合和数组 292

10.2.6 属性 293

10.2.7 委托和事件 294

10.2.8 枚举 297

10.2.9 异步方法 297

10.2.10 异常 298

10.2.11 调试提示 298

10.3 在C++中创建一个基本Windows运行时组件并从JavaScript中调用此组件 298

10.3.1 创建C++组件项目 298

10.3.2 向组件中添加可激活的类 299

10.3.3 创建JavaScript项目 303

10.3.4 运行应用程序 306

10.3.5 在对象浏览器中检查组件(可选) 306

10.3.6 调试提示 306

10.4 示例:Bing地图旅途优化器,用JavaScript和C++实现的一种Metro风格应用 307

10.4.1 Bing地图行程优化器简介 308

10.4.2 先决条件 308

10.4.3 必应地图出行优化程序示例的概述 308

10.4.4 在必应地图出行优化程序示例中使用JavaScript的示例 310

10.4.5 在必应地图出行优化程序示例中使用C++的示例 313

10.4.6 必应地图出行优化程序示例中JavaScript与C++之间的互操作 339

10.4.7 迁移必应地图出行优化程序示例中的现有代码 342

第 11章 基于Visual C++2012开发Metro Direct2D App 346

11.1 Metro Direct2D技术讲解(1) 346

11.1.1 什么是Direct2D 346

11.1.2 D2D的架构 346

11.1.3 可视效果 347

11.1.4 可交互性 348

11.2 Metro Direct2D技术讲解(1)来看D2D世界中的Hello,World 348

11.2.1 基本概念 349

11.2.2 程序框架 350

11.2.3 代码 351

11.3 Metro Direct2D技术讲解(1)简单几何图形 354

11.3.1 直线 354

11.3.2 矩形 355

11.3.3 圆角矩形 355

11.3.4 椭圆 356

11.3.5 三角形 357

11.3.6 圆 357

11.3.7 线条的宽度 358

11.4 Metro Direct2D技术讲解(1)Path Geometry 358

11.4.1 创建Path geometry 359

11.4.2 获取ID2D1GeometrySink对象 359

11.4.3 使用ID2D1GeometrySink添加图形 359

11.4.4 创建小山 360

11.4.5 创建太阳 361

11.4.6 创建小溪 363

11.4.7 绘制场景 363

11.5 Metro Direct2D技术讲解(1)复合图形 364

11.5.1 创建图形组中的所有图形 364

11.5.2 创建图形组 364

11.5.3 使用图形组进行绘制 365

11.5.4 变换图形 365

11.5.5 变换render target 366

11.5.6 变换图形本身 367

11.6 Metro Direct2D技术讲解(1)单色画刷 367

11.6.1 画刷属性 368

11.6.2 设置属性 369

11.6.3 使用单色画刷 370

第 12章 基于Visual C++2012开发Metro Direct3D App 372

12.1 Direct3D 11的新功能 372

12.1.1 计算着色器 372

12.1.2 动态着色链接 372

12.1.3 多线程 373

12.1.4 镶嵌 373

12.2 设备 373

12.2.1 介绍 374

12.2.2 软件层 375

12.2.3 如何创建一个参考设备 376

12.2.4 如何创建一个WARP设备 377

12.2.5 如何创建一个交换链 378

12.2.6 创建一个设备和一个交换链 378

12.2.7 枚举适配器 378

12.2.8 如何获取适配器显示模式 380

12.2.9 如何创建设备和直接上下文 380

12.2.10 下层硬件的Direct3D 11 383

12.3 资源 383

12.3.1 介绍 383

12.3.2 类型 386

12.3.3 资源限制 387

12.3.4 子资源 388

12.3.5 缓冲区 389

12.3.6 纹理 395

12.4 Graphics Pipeline 399

12.5 渲染 400

12.5.1 介绍 400

12.5.2 多线程对象的创建 401

12.5.3 即时和延迟渲染 401

12.5.4 如何检查驱动程序支持 402

12.5.5 线程之间的Direct3D版本的差异 403

12.6 特效 404

12.6.1 特效的状态 405

12.6.2 特效系统接口 408

12.6.3 特殊接口 409

12.6.4 特效中的类和接口 410

12.6.5 渲染特效 412

12.6.6 克隆特效 413

12.6.7 Direct3D的video接口 414

12.7 案例分析 414

第 13章 Visual C++2012 Windows 8 Metro经典案例 431

13.1 案例1 metro多点触控程序范例 431

13.1.1 触控输入简介 431

13.1.2 手势 431

13.1.3 使用指针事件 432

13.1.4 使用操作事件 433

13.1.5 UI设计和触控输入 436

13.2 案例2 metro笔迹文档程序范例 436

13.3 案例3 metro云存储程序范例 457

13.3.1 难题和目标 457

13.3.2 简单的架构和实现 457

13.3.3 在ASP.NET MVC中保存和显示图片 463

13.3.4 总结 465

13.4 案例4 Metro手势识别范例 465

13.5 案例5 Metro语音朗读范例 470

13.6 案例6 metro语音识别范例 483

13.7 案例7 metro传感器范例 489

13.7.1 使用加速计响应用户移动(C++) 489

13.7.2 使用陀螺测试仪确定角速度 494

13.7.3 使用指南针确定当前的方位 499

13.7.4 使用测斜仪确定俯仰、滚转和偏航 503

13.7.5 使用方向传感器检索四元数和旋转 508

13.7.6 使用SimpleOrientation传感器确定设备方向 513

13.8 案例8 metro摄像头范例 518

13.8.1 通过摄像头预览视频 519

13.8.2 旋转捕获的视频 519

13.8.3 向捕获的视频中添加视频防抖动效果 520

第 14章 将程序发布到Windows 8商店 521

14.1 如何注册Windows 8商店 521

14.2 如何打包应用程序 526

14.3 如何发布程序到Windows 8商店 530

详情

本书以讲解在Windows8下用Visual c++2012开发程序为线索,用大量的实例为读者介绍了Visual c++2012的功能。本书讲解细致,通俗易懂,力争使读者在了解的基础上掌握它的应用。

图书摘要

相关图书

代码审计——C/C++实践
代码审计——C/C++实践
CMake构建实战:项目开发卷
CMake构建实战:项目开发卷
C++ Templates(第2版)中文版
C++ Templates(第2版)中文版
C/C++代码调试的艺术(第2版)
C/C++代码调试的艺术(第2版)
计算机图形学编程(使用OpenGL和C++)(第2版)
计算机图形学编程(使用OpenGL和C++)(第2版)
Qt 6 C++开发指南
Qt 6 C++开发指南

相关文章

相关课程