日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【windows8开发】C++开发WinRT组件和JS调用

發布時間:2023/12/20 c/c++ 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【windows8开发】C++开发WinRT组件和JS调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通過Windows Runtime(以下簡稱WinRT),可以用C++或C#或VB很方便的開發組件(dll),并且這些組件在用Javascript開發的Metro app中可以幾乎無縫的被(javascript)調用。由于win8開發平臺下,Javascript并不能訪問原生的C++代碼(雖然可以訪問WinRT API),而實際開發中,經常會有一些既存的組件,或者需要用一些第三方庫,這時就可以考慮把這些組件或希望利用的庫包裝成WinRT組件供UI層(JS)調用, 讓我們來看一個具體的例子吧。以下代碼在Beta版VS2011中可以編譯運行。?
創建WinRT Dll工程,工程名為TestLib,代碼如下 .h文件: #pragma once #include <amp.h> #include <collection.h>namespace TestLib {public ref class WinRTComponent sealed{public:WinRTComponent();void SyncFunc(int number);Windows::Foundation::IAsyncOperationWithProgress<Windows::Foundation::Collections::IVector<int>^, double>^ AsyncFunc(int number);private:bool is_prime(int n);}; }
組件中類名為WinRTComponent,作為組件類,考慮到外部調用,聲明為public,同時也聲明為引用類型ref,它包含兩個public方法, SyncFunc方法為以同步調用方式計算出number值以下所有的質數,并返回結果 AsyncFunc方法為以異步調用方式計算出number以下所有的質數,并返回結果
cpp文件: #include "pch.h" #include "WinRTComponent.h" using namespace TestLib; using namespace Platform; using namespace Concurrency; using namespace Platform::Collections; using namespace Windows::Foundation::Collections; using namespace Windows::Foundation;WinRTComponent::WinRTComponent() { }bool WinRTComponent::is_prime(int n) {if (n < 2)return false;for (int i = 2; i < n; ++i){if ((n % i) == 0)return false;}return true; }void WinRTComponent::SyncFunc(int number) {auto primes = ref new Vector<int>();for (int i = 0; i < number; i++) {if (is_prime(i)) {primes->Append(i);}} }IAsyncOperationWithProgress<IVector<int>^, double>^ WinRTComponent::AsyncFunc(int number) {return create_async([this, number](progress_reporter<double> reporter)-> IVector<int>^ {auto primes = ref new Vector<int>();double progress = 0.0;double curProgress = 0.0;for (int i = 0; i < number; i++) {if (this->is_prime(i)) {primes->Append(i);}curProgress = 100.0 * i / number;if (curProgress > progress) {progress = curProgress;reporter.report(curProgress);}}reporter.report(100.0);return primes;}); }
AsyncFunc方法中,create_async函數是通過異步的方式創建一個異步調用,使計算在后臺進行,而程序不會阻塞在質數統計的計算中。其中有個匿名函數Lambda表達式的使用,這是C++ 0x/11中支持的新特性,不明白可朋友可以看我另外一篇博客。 http://blog.csdn.net/my_business/article/details/7477615
另外,以上代碼中ref,^等與傳統C++不同的特性在本文中就不作說明了,在這個系列的其他文章中會有說明。
最后是javascript對以上組件dll的調用,代碼如下:
// 新建WinRTComponent對象 var testlib = new TestLib.WinRTComponent(); // 異步方法調用 testlib.asyncFunc(1000).then(function (v) {// get result from v},function (error) {},function (p) {// get progress} ); // 同步方法調用 var vec = testlib.syncFunc(1000);
異步方法調用后會立刻返回,在后臺計算結束后會調用第一個回調函數,可以從參數v中取得計算結果。另外在計算中途,可以從最后一個回調函數中得到后臺計算的進度。
總的來說,組件的封裝和調用還是挺簡單的,大家的意見又如何呢?

轉載于:https://www.cnblogs.com/secbook/archive/2012/04/21/2655114.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【windows8开发】C++开发WinRT组件和JS调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产午夜无码精品免费看奶水 | 草草影院网址 | av一区二区在线观看 | 黑帮大佬和我的365日第二部 | 一区二区欧美在线观看 | 成人免费性生活视频 | 麻豆va| 污导航在线观看 | 高清欧美性猛交 | 日韩三级视频在线 | 91视频免费观看网站 | 天堂av在线网 | 已满18岁免费观看电视连续剧 | 长篇乱肉合集乱500小说日本 | 亚洲a网站| 69视频一区二区三区 | 欧美少妇一区二区三区 | 一区二区av在线 | 国产精品成人3p一区二区三区 | 欧美福利网站 | 五月婷婷六月丁香综合 | 人人天天夜夜 | 性视频免费看 | 羞羞涩涩视频 | 久久久久人妻一区精品色欧美 | 一区二区av在线 | 国产视频在线观看一区 | 亚洲色图21p | 少妇激情视频 | 熟女高潮一区二区三区 | 亚洲日本色 | 亚洲欧美日韩精品在线 | 麻豆视频在线免费看 | 久久久性视频 | 一道本久在线中文字幕 | 久久的色偷偷 | 欧美a∨ | 久久99精品视频 | 久久这里只有精品99 | 黄色小视频在线观看 | 免费播放片大片 | 国产精品久久久久久免费播放 | 大胸美女啪啪 | 欧洲精品久久一区二区 | 色播一区二区 | 久久婷婷综合色丁香五月 | 日本熟妇色xxxxx日本免费看 | 黑鬼大战白妞高潮喷白浆 | 99国产精品久久久久 | 欧美激情在线免费 | 69影院少妇在线观看 | 国产精品毛片一区视频播 | 国产免费脚交足视频在线观看 | 不卡av影院| 99久久免费国产精精品 | 国产女人在线视频 | 国产 日韩 欧美 成人 | 久草中文在线观看 | 夫妻露脸自拍[30p] | 日韩在线视频精品 | 环太平洋3:泰坦崛起 | 欧美三级国产 | 婷婷伊人久久 | 偷自在线 | 色婷婷婷婷色 | 善良的老师伦理bd中字 | 在线午夜电影 | 在线免费看av片 | 人人爽人人干 | 三级视频黄色 | 国产suv一区二区 | 操丰满女人 | 久久国产精品免费视频 | 毛片的网站 | 肉丝袜脚交视频一区二区 | 性猛交xxxx乱大交3 | 男男巨肉啪啪动漫3d | 理论片高清免费理伦片 | 丝袜美腿亚洲一区二区图片 | 激情91 | 日韩高清三区 | 日韩视频在线播放 | 四虎av影视| 国产乱码久久久久 | 亚洲第一国产 | 色婷婷色| 欧美比基尼| 亚洲综合激情在线 | 国产精品久久久久久久免费大片 | 久久8 | 亚洲制服一区二区 | 蜜桃av中文字幕 | 日批免费观看视频 | 免费观看a级片 | 日韩欧美一区二区三区在线观看 | 香港三级日本三级韩国三级 | 黄色天堂av | 成人自拍网 | china国产乱xxxxx绿帽 |