青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Coder

HCP高性能計(jì)算架構(gòu),實(shí)現(xiàn),編譯器指令優(yōu)化,算法優(yōu)化, LLVM CLANG OpenCL CUDA OpenACC C++AMP OpenMP MPI

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  98 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
 英文原文:C# and Visual Basic on the WinRT API

  (作者:Jonathan Allen 譯者:侯伯薇

  盡管我們可以使用 .NET 語言來調(diào)用 Win32 API,但那樣做會(huì)很困難。所以在過去的兩年間微軟一直在構(gòu)建替代的方案,它就是實(shí)現(xiàn)了跨語言支持的 Windows 運(yùn)行時(shí),即 WinRT。我們可以在 C++ 和 .NET 中創(chuàng)建 WinRT 組件,并且可由二者以及 JavaScript 使用。

  盡管 COM 在表面上是一種基于 OOP 的框架,但它與 .NET 之間有很大的區(qū)別。在 WinRT 出現(xiàn)之前,COM 是基于接口而不是基于類的。這意味著其中缺少很多 .NET 開發(fā)者認(rèn)為應(yīng)該有的內(nèi)容,像構(gòu)造函數(shù)以及靜態(tài)方法等。C++組件擴(kuò)展解決了這個(gè)問題。

  WinRT 形式的 COM 使用的元數(shù)據(jù)格式和通用語言運(yùn)行時(shí)(Common Language Runtime)相同。這些信息存儲(chǔ)在表示結(jié)構(gòu)的 WINMD 文件中,盡管沒有實(shí)現(xiàn),但在所有公有類中都會(huì)有。FXCop 被用于檢驗(yàn)這些文件所暴露的 API 是否遵循 .NET Framework 的設(shè)計(jì)指南。

  .NET 在最開始時(shí)就有“API 設(shè)計(jì)委員會(huì)(API Design Board)”。受此啟發(fā),Windows 運(yùn)行時(shí)也會(huì)建立 API 設(shè)計(jì)委員會(huì)來對(duì)其進(jìn)行管理。很多最初的成員都在 .NET 委員會(huì)中,并且很多指南都直接來自于 .NET 基本類庫所遵循的原則。

  Windows 運(yùn)行時(shí)會(huì)返回 HRESULT,而不會(huì)拋出異常。對(duì)于眾所周知的 HRESULT 值來說,會(huì)拋出相應(yīng)的異常,而對(duì)于其他值就只能拋出 COMException。

  WinRT 的 IAsyncOperation 接口現(xiàn)在使用新的 async/await 關(guān)鍵字,就像 .NET 的 Task 對(duì)象一樣。

  所有 Windows 運(yùn)行時(shí)的集合接口都被映射到 .NET 框架的等價(jià)物上。在 .NET 4.5中添加了 IReadOnlyList 和 IReadOnlyDictionary,用來負(fù)責(zé)處理 WinRT 中的只讀集合。

  WinRT 和 .NET API 在兩個(gè)地方無法匹配。WinRT 的 stream 無法直接與 .NET 的 IO.Stream 類兼容,但是可以調(diào)用名為 AsStream 的擴(kuò)展方法來進(jìn)行轉(zhuǎn)換。WinRT 還擁有名為 IBuffer 的接口,這在 .NET 中也無法簡(jiǎn)單地實(shí)現(xiàn)。在此也有一個(gè)擴(kuò)展方法來進(jìn)行 IBuffer 和比特?cái)?shù)組之間的轉(zhuǎn)換。

  我們可以使用 C# 和 VB 來創(chuàng)建新的 Windows 運(yùn)行時(shí)程序庫,過程非常簡(jiǎn)單。為了把類暴露為 Windows 運(yùn)行時(shí)組件,我們只需要把項(xiàng)目類型設(shè)置為“WINMD 文件”,并確保遵循以下規(guī)則:

  1. API 簽名只使用 Windows 運(yùn)行時(shí)的類型
  2. 結(jié)構(gòu)體只能擁有公有的數(shù)據(jù)字段
  3. 只允許對(duì) XAML 控件使用繼承,其它類型都必須使用 sealed 關(guān)鍵字。
  4. 只支持內(nèi)建的泛型

  編譯這些庫之后,我們就可以在 C++ 和 JavaScript 中調(diào)用它們,就像從 .NET 中調(diào)用一樣簡(jiǎn)單。

  警告

  由于 WinRT 是基于 COM 構(gòu)建的,所以你同樣會(huì)有引用計(jì)數(shù)和 mark-and-sweep 垃圾回收器之間無法融合的問題。對(duì)于實(shí)現(xiàn)了析構(gòu)函數(shù)釋放非內(nèi)存資源的對(duì)象來說,這是最常見的問題。我們可以考慮調(diào)用“Marshal.FinalReleaseComObject”來解決問題,但是那本身也存在問題。

  COM 風(fēng)格的 marshaling 需要在 .NET 和本地組件之間調(diào)用。盡管這通常是無關(guān)緊要的,但是如果 API 非常不正式,那么就會(huì)出現(xiàn)問題。

  內(nèi)建的 WinRT 庫(而不是 XAML)是在 Metro 運(yùn)行時(shí)環(huán)境之外提供的。然而,第三方的 WinRT 庫并非如此。這是 WinRT 中激活框架(activation framework)的限制,而不是 .NET 的問題。

posted on 2012-10-29 21:27 jackdong 閱讀(278) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Windows RT
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲第一区在线| 亚洲精品社区| 欧美3dxxxxhd| 美女脱光内衣内裤视频久久影院 | 一区国产精品| 亚洲激情视频在线| 亚洲一级免费视频| 久久精品99国产精品| 美女网站久久| 亚洲欧洲美洲综合色网| 9l国产精品久久久久麻豆| 亚洲一线二线三线久久久| 久久国内精品自在自线400部| 久久频这里精品99香蕉| 欧美精品自拍| 国产综合香蕉五月婷在线| 99精品久久久| 一区二区在线视频| 一区二区三区成人| 久久精品在线播放| 亚洲国产综合在线| 午夜精品久久久久久久蜜桃app| 久久99伊人| 欧美午夜一区| 亚洲激情视频网站| 久久国产66| 99国产精品国产精品毛片| 久久久九九九九| 国产精品捆绑调教| 亚洲精品视频在线播放| 久久久久久久久岛国免费| 亚洲欧洲一级| 久久视频这里只有精品| 国产精品久久久久久久久免费桃花| 伊人蜜桃色噜噜激情综合| 亚洲欧美大片| 亚洲黄色性网站| 久久精品日韩| 国产模特精品视频久久久久| 亚洲乱码日产精品bd| 久久婷婷麻豆| 亚洲欧美视频| 国产精品美女久久| 亚洲一级一区| 亚洲精选在线| 欧美大片在线观看| 亚洲第一区在线| 久久亚洲欧美国产精品乐播| 亚洲欧美美女| 国产精品久久久久一区二区| 一本在线高清不卡dvd| 欧美成人亚洲成人| 久久精品一区蜜桃臀影院 | 久热国产精品| 午夜亚洲福利| 国产模特精品视频久久久久| 亚洲一二三区在线观看| 亚洲日本一区二区三区| 免费日韩av| 亚洲国产精品成人综合| 久久综合999| 久久久精品网| 亚洲精品久久7777| 欧美激情第3页| 牛牛影视久久网| 最新高清无码专区| 日韩午夜免费| 国产精品一区二区久久久| 亚洲欧美在线视频观看| 亚洲五月婷婷| 国产自产2019最新不卡| 巨乳诱惑日韩免费av| 欧美电影在线免费观看网站| 欧美有码在线观看视频| 亚洲男同1069视频| 国产亚洲视频在线| 久久中文字幕导航| 男女av一区三区二区色多| 亚洲国产精品va在看黑人| 亚洲高清三级视频| 欧美视频在线观看免费网址| 亚洲欧美精品| 久久精品一本| 一区二区久久久久| 亚洲欧美日韩国产综合精品二区| 国产一区二区三区在线观看免费| 男女激情久久| 国产精品白丝jk黑袜喷水| 性刺激综合网| 女主播福利一区| 亚洲一级在线| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲国产精品综合| 夜夜嗨网站十八久久| 国产自产精品| 亚洲精品一区二区三区四区高清 | 午夜精品福利电影| 亚洲第一页自拍| 99精品国产高清一区二区| 国产亚洲精品aa| 亚洲日本视频| 激情成人中文字幕| 中文亚洲免费| 亚洲黄色一区| 午夜精品视频在线观看一区二区 | 亚洲精品国产精品乱码不99按摩 | 欧美亚洲第一区| 欧美成人午夜视频| 国产亚洲欧洲997久久综合| 亚洲欧洲一区二区天堂久久| 国产偷国产偷亚洲高清97cao| 亚洲人体影院| 亚洲国产精品va| 久久成人免费视频| 午夜一区不卡| 欧美日韩福利| 亚洲高清视频一区二区| 国内精品久久久久久久果冻传媒| 亚洲视频播放| 一区二区三区蜜桃网| 男女激情久久| 欧美成人国产| 一区二区在线观看视频在线观看| 亚洲欧美www| 亚洲欧美日本国产专区一区| 欧美激情第一页xxx| 暖暖成人免费视频| 很黄很黄激情成人| 欧美在线91| 麻豆精品精品国产自在97香蕉| 91久久精品国产91久久性色tv| 国产精品高潮视频| 亚洲精品欧美激情| 亚洲精品影院| 欧美精品日韩www.p站| 亚洲国产精品va在看黑人| 亚洲国产成人不卡| 欧美www在线| 亚洲理论在线| 国产精品99久久久久久白浆小说| 欧美国产亚洲视频| 亚洲精品色图| 亚洲欧美美女| 国产亚洲一本大道中文在线| 午夜精品久久久久久| 欧美一区二区视频97| 国产主播一区二区三区| 久久精品天堂| 欧美黄色一区二区| 99精品国产高清一区二区| 欧美日韩中文字幕日韩欧美| 亚洲视频欧美在线| 久久久综合激的五月天| 亚洲国产三级网| 欧美美女视频| 亚洲一区二区综合| 美国成人毛片| 一区二区三区国产在线| 欧美亚韩一区| 久久精品国产第一区二区三区最新章节 | 91久久国产综合久久蜜月精品 | 久久久久看片| 亚洲国产毛片完整版| 欧美日韩亚洲免费| 欧美一级视频精品观看| 欧美激情欧美狂野欧美精品 | 欧美 日韩 国产在线| 亚洲美女91| 国产欧美大片| 欧美激情视频一区二区三区在线播放 | 久久精品国产亚洲aⅴ| 欧美大片一区二区| 亚洲亚洲精品在线观看| 好看的av在线不卡观看| 欧美日韩国产在线一区| 欧美一区高清| 亚洲裸体视频| 久久综合给合久久狠狠狠97色69| 亚洲免费观看| 黄色日韩在线| 国产精品久久久久久久电影| 久久精品99久久香蕉国产色戒| 亚洲精品一二区| 嫩草国产精品入口| 久久精品亚洲精品国产欧美kt∨| 亚洲精品久久久久久一区二区| 国产一区二区成人久久免费影院| 欧美日韩高清在线| 欧美h视频在线| 国产亚洲欧洲997久久综合| 一区二区三区精品国产| 欧美一区三区三区高中清蜜桃| 欧美日韩1234| 亚洲在线免费| 久久久久久夜| 亚洲影院色在线观看免费| 另类av一区二区| 久久久久9999亚洲精品| 亚洲作爱视频| 国产精品日日摸夜夜摸av|