作者簡介
尹成 ,畢業於清華大學,微軟全球最具價值技術專家,Windows平台資深軟體構架師,CSDN著名技術專家,微軟C/C++特邀嘉賓,Intel軟體技術專家。精通C/C++,對語音技術、信息安全、移動3G開發均有較深入的研究。
目錄
圖書詳細內容:
第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 請求(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 binable類 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