锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲私人影院,国产一区二区三区久久久,久久综合久久综合久久http://m.shnenglu.com/jackdongy/category/20083.htmlHCP楂樻ц兘璁$畻鏋舵瀯錛屽疄鐜幫紝緙栬瘧鍣ㄦ寚浠や紭鍖栵紝綆楁硶浼樺寲錛? LLVM CLANG OpenCL CUDA OpenACC C++AMP OpenMP MPIzh-cnFri, 23 Nov 2012 10:38:39 GMTFri, 23 Nov 2012 10:38:39 GMT60Windows 8瀹炰緥鏁欑▼緋誨垪 - 鐞嗚В搴旂敤妗嗘灦 http://m.shnenglu.com/jackdongy/archive/2012/11/22/195572.htmljackdongjackdongThu, 22 Nov 2012 13:04:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/11/22/195572.htmlhttp://m.shnenglu.com/jackdongy/comments/195572.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/11/22/195572.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/195572.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/195572.html
 

 

Windows 鎿嶄綔緋葷粺涔嬫墍浠ラ闈′笘鐣岋紝鏄洜涓哄叾“鏄撳鏄撶敤”錛屼粠鐢ㄦ埛鐨勮搴﹀嚭鍙戯紝璁╂暟浠ヤ竾璁$殑闈濱T浜哄憳浣跨敤璁$畻鏈哄疄鐜板ū涔愶紝宸ヤ綔絳夌洰鐨勩俉indows 8緇ф壙Windows妗岄潰鐨勪紭鐐癸紝鍚屾椂鎻愪緵涓縐嶆柊鐨勭敤鎴蜂綋楠屾ā寮?錛?Windows store椋庢牸銆傛崲鍙ヨ瘽璇達紝W(xué)indows 8鎿嶄綔緋葷粺瀛樺湪涓ょ涓嶅悓椋庢牸鐨勫簲鐢ㄣ?鏈瘒灝嗕粙緇峎indows 8搴旂敤妗嗘灦浠ュ強寮鍙戝伐鍏風(fēng)殑浣跨敤銆?/div>

鐞嗚ВWindows 8搴旂敤妗嗘灦

姝e鍓嶆枃鎵璇達紝W(xué)indows 8鍏鋒湁涓や釜涓嶅悓椋庢牸鐨勫簲鐢紝W(xué)indows store搴旂敤鍜屼紶緇焀indows妗岄潰搴旂敤銆備袱縐嶉鏍煎簲鐢ㄤ嬌鐢ㄤ笉鍚岀殑UI寮曟搸錛屼笉鍚岀殑鏈嶅姟鍜屽伐鍏鳳紝浠ュ強涓嶅悓鐨凙PI. 浣嗘槸錛岄兘榪愯鍦ㄥ悓涓涓猈indows 8鎿嶄綔緋葷粺鍐呮牳涓嬨?/p>


 

鎴戜滑綆鍗曞姣斾竴涓嬩袱縐嶅簲鐢細

 

Windows store搴?/span>鐢?/span>

浼犵粺Windows妗岄潰搴旂敤

Windows store搴?/span>鐢?/span>澧炲姞瑙︽帶鎿嶄綔錛岀嫭鐗圭殑鎵嬪娍鎿嶄綔錛屾彁楂樼敤鎴蜂綋楠屾?/span>

浼犵粺妗岄潰搴?/span>鐢ㄤ富瑕佹搷浣滄ā寮忔槸鍩轟簬榧?/span>鏍?/span>鍜?/span>閿洏鎿嶄綔搴?/span>鐢?/span>

搴?/span>鐢ㄥ紑鍙?/span>鍩轟簬.Net Framework Windows 8 API

搴?/span>鐢ㄥ紑鍙?/span>鍩轟簬Win32 API,鎴栬?/span>Net Framework

Windows store搴?/span>鐢ㄤ笉鎺ㄨ崘澶ч噺浣跨敤瀵硅瘽妗?/span>榪?/span>琛屼漢鏈轟氦浜掞紝鑰屾帹鑽愪嬌鐢?/span>欏?/span>闈?/span>瀵艱埅鐨勬ā寮忚繘琛屼氦浜掞紝榪欑鏂瑰紡鏇磋薄浣跨敤嫻忚鍣ㄥ墠榪涘悗閫鐨勫姛鑳借繘琛屼氦浜掋?/span>

浼犵粺搴?/span>鐢ㄤ互瀵硅瘽妗?/span>涓?/span>涓昏浜烘満浜や簰鏂瑰紡

鍦ㄩ儴緗叉柟闈紝鐢?/span>鎴?/span>涓嶉渶瑕佷簡瑙?/span>搴?/span>鐢ㄥ畨瑁呮枃浠剁瓑淇℃伅錛?/span>浠?/span>闇瑕佸湪Windows store涓嬭澆瀹夎鍗沖彲銆?/span>

鍦ㄩ儴緗叉柟闈紝浼犵粺妗岄潰搴?/span>鐢ㄩ渶瑕佷竴瀹氱殑瀹夎鍜屾敞鍐屾祦紼?/span>

 

Windows 8浼犵粺妗岄潰搴旂敤妗嗘灦

Windows 8浼犵粺妗岄潰搴旂敤鍙互鏍規(guī)嵁鍒嗕負涓夌被錛屽垎鍒槸Win32搴旂敤錛?Net搴旂敤鍜孒TML搴旂敤銆?/p>

1. Win32搴旂敤涓昏寮鍙戣璦涓篊錛孋++鎴朧B銆傝搴旂敤琚洿鎺ョ紪璇戜負CPU浠g爜榪愯鍦╓in32 API涓婏紝鍏剁敤鎴風(fēng)晫闈㈠疄鐜板繀欏諱嬌鐢℅DI鎴栬匞DI+銆?/p>

2. .Net搴旂敤涓昏寮鍙戣璦涓篊#錛孷B.NET銆傝搴旂敤琚紪璇戜負涓棿璇█(IL)錛岀劧鍚庡啀琚漿鎹負CPU浠g爜榪愯鍦–LR(Common Language Runtime)鐜銆傚叾鐢ㄦ埛鐣岄潰瀹炵幇浣跨敤XAML璇█銆?/p>

3. HTML搴旂敤涓昏寮鍙戣璦涓篐TML/CSS鍜孞avaScript錛岃搴旂敤鍩轟簬嫻忚鍣ㄨ繍琛屻?/p>


 

 
 
 Windows store搴旂敤妗嗘灦
 
鍩轟簬鐩稿悓鐨刉indows 8鎿嶄綔緋葷粺鍐呮牳錛學(xué)indows Store搴旂敤鍏變韓鐩稿悓鐨凙PI灞傦紝縐頒負Windows Runtime APIs銆傛棤璁轟嬌鐢–/C++,鎴栬呭熀浜?Net鐨凜#/VB.NET鎴栬匟TML5/JavaScript浠諱綍涓縐嶅紑鍙戣璦閮藉彲浠ヨ交鏉捐皟鐢╓inRT API綾誨簱錛屽疄鐜版湰鍦板簲鐢ㄦ搷浣溿?/div>
鍊煎緱涓鎻愮殑鏄紝寰蔣緇煎悎褰撳墠鏈嫻佽鐨凥TML5/CSS3/JavaScript鎶鏈紝浣縒eb寮鍙戜漢鍛樺彲浠ヨ交鏉懼紑鍙慦indows store鏈湴搴旂敤銆傚彟澶栵紝鍩轟簬XAML鐨凷ilverlight鍜學(xué)PF鎶鏈兘鎴愪負Windows 8鎿嶄綔緋葷粺閮ㄥ垎錛屼笉鍐嶉渶瑕佸畨瑁呮彃浠舵敮鎸併傝孲ilverlight/WPF寮鍙戜漢鍛橈紝鍙互緇х畫浣跨敤鐩稿叧寮鍙戞妧鑳戒粠浜媁indows Store搴旂敤寮鍙戙?br /> 
 
 
Windows Runtime妗嗘灦
 
浠庝笂闈㈠浘渚嬪彲浠ョ湅鍑猴紝W(xué)indows Runtime鏄疻indows 8搴旂敤妗嗘灦閲嶈緇勬垚閮ㄥ垎涔嬩竴銆傚井杞皢WinRT瑙嗕負緇?002騫?Net Framework鍙戝竷鍚庢渶澶х殑闈╂柊銆備綔涓篧indows Store搴旂敤璁捐鍜屽紑鍙戜漢鍛橈紝浠庡井杞璁″師鍒欒冭檻錛學(xué)indows Runtime涓嶄粎浠呮槸涓濂楃畝鍗曠殑API綾誨簱錛岃屾槸涓濂楃嫭绔嬪畬鏁寸殑鑳藉鏀寔Windows Store搴旂敤椋庢牸鐨勮繍琛岀幆澧冦?br /> 

 
 
Windows Runtime鐨?strong>浼樼偣錛?/div>
 
1. WinRT榪愯鍦╓indows 8鏍稿績灞備箣涓婏紝涓篧indows Store搴旂敤鎻愪緵API鏀寔璁塊棶鏈湴璧勬簮錛屼緥濡侴PS錛屾憚鍍忓ご錛岄害鍏嬬瓑銆?/div>
2. Windows Store搴旂敤榪愯鍦ㄥ畨鍏ㄦ矙綆變腑錛屾墍浠ワ紝璇ュ簲鐢ㄥ彲浠ヨ璁や負瀹夊叏鐨刴anaged鐨勫簲鐢ㄣ傚綋搴旂敤灝濊瘯浣跨敤鏈巿鏉冩湰鍦拌祫婧愭椂錛學(xué)inRT灝嗘彁紺虹敤鎴鋒槸鍚﹁祴浜堢郴緇熷瓨鍙栨潈闄愩?/div>
3. 浼犵粺Win32 API鐙珛浜庢搷浣滅郴緇熷唴鏍告湇鍔★紝鑰學(xué)inRT鏄疻indows 8鎿嶄綔緋葷粺緇勬垚閮ㄥ垎涔嬩竴銆?涓嶹in32鐩告瘮錛學(xué)inRT鏇村姞紼沖畾錛屽叾鍐呭瓨綆$悊鏇村姞浼樺寲錛屽浜庡簲鐢ㄥ拰緋葷粺鎬ц兘閮芥湁寰堝ぇ鐨勬彁楂樸?/div>
4. WinRT鏀寔鏈湴寮傛鎿嶄綔錛岃繖鏄浜庣Щ鍔ㄨ澶囪岃█鑷沖叧閲嶈鐨勭壒鎬с?/div>
 
璇█鏄犲皠灞?Language Projection)
Windows 8搴旂敤鏀寔澶氱寮鍙戣璦錛岃屼笉鍚屽紑鍙戣璦錛岄渶瑕侀氳繃Language Projection鏄犲皠鍒癢indows Runtime榪愯鐜錛屽紑鍙戜漢鍛樹笉闇瑕佹媴蹇冭璦涔嬮棿鐨勮漿鎹紝鏁翠釜榪囩▼閮芥槸緙栬瘧鍣ㄨ嚜鍔ㄥ畬鎴愩?/div>
鍊煎緱涓鎻愮殑鏄紝閫氳繃璇█鏄犲皠灞傦紝寮鍙戜漢鍛樺彲浠ュ湪鍚屼竴涓」鐩腑浣跨敤涓嶅悓鐨勫紑鍙戣璦寮鍙戦」鐩姛鑳斤紝鍦ㄩ殢鍚庣殑鏂囩珷涓紝鎴戝皢鎻愪緵鐩稿簲瀹炰緥婕旂ず銆?/div>
 
濡備綍閫夋嫨Windows Store搴旂敤寮鍙戣璦
瀵逛簬Windows Store搴旂敤寮鍙戣璦閫夋嫨錛屾湁浠ヤ笅鍑犱釜寤鴻鎻愪緵鍙傝冿細
1. 瀵逛簬鍏鋒湁Windows搴旂敤寮鍙戠粡楠岀殑寮鍙戜漢鍛樿岃█錛孋#鍜孋++鏄渶濂界殑閫夋嫨錛岀浉姣旇岃█錛孋#鍩轟簬.Net Framework錛屽叾搴旂敤涓篗anaged錛屾瘮杈冨鏄撳涔?fàn)鎺屾彙銆傝孋++鏇村姞璐磋繎搴曞眰搴旂敤寮鍙戙?/div>
2. 瀵逛簬鍏鋒湁Web搴旂敤寮鍙戠粡楠岀殑璁捐鍜屽紑鍙戜漢鍛樿岃█錛孒TML5/CSS3/JavaScript鏄渶濂界殑閫夋嫨銆傜被浼糚honeGap妗嗘灦錛學(xué)indows 8灝嗘彁渚涗竴涓猈eb Host鎵胯澆榪愯緙栬瘧鍚庣殑HTML搴旂敤錛屼嬌鍏惰揪鍒版湰鍦板寲鐨勬晥鏋溿?/div>
3. 瀵逛簬鍏鋒湁瀹忔搷浣滅粡楠岀殑寮鍙戜漢鍛樿岃█錛孷B.Net鏄竴涓笉閿欑殑閫夋嫨錛屽叾搴旂敤寮鍙戜笌寰蔣Office VBA搴旂敤寮鍙戠被浼箋?/div>
 
 
浠婂ぉ灝辮鍒拌繖閲屻?/div>

瀛︿範(fàn)XAML鎻忚堪璇█錛岃鐪嬶細Windows 8 XAML瀹炰緥鏁欑▼緋誨垪


http://blog.csdn.net/jv9/article/details/8208209

jackdong 2012-11-22 21:04 鍙戣〃璇勮
]]>Windows 8 C++/CX瀛楃涓?http://m.shnenglu.com/jackdongy/archive/2012/10/29/194043.htmljackdongjackdongMon, 29 Oct 2012 13:51:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194043.htmlhttp://m.shnenglu.com/jackdongy/comments/194043.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194043.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/194043.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/194043.htmlhttp://www.cnblogs.com/linzheng/archive/2012/07/29/2614014.html

     鍦–++/CX閲岄潰鏄嬌鐢≒latform::String綾繪潵琛ㄧず瀛楃涓茬殑綾誨瀷錛屽湪windows榪愯鏃剁殑鎺ュ彛鍜屾柟娉曚腑錛岄渶瑕佷嬌鐢≒latform::String鏉ヤ綔涓哄瓧絎︿覆鍙傛暟鐨勪紶閫掋傚鏋滈渶瑕佷嬌鐢ㄦ爣鍑咰++鐨勫瓧絎︿覆綾誨瀷濡倃string鎴栬卻tring鐨勬椂鍊欙紝鍙互灝哖latform::String涓庢爣鍑嗙殑C++鐨勫瓧絎︿覆榪涜浜掔浉鐨勮漿鎹€?

 

String綾誨瀷鐨勬瀯閫?/strong>

String綾誨瀷琛ㄧず鐨勬槸char16鐨勫瓧絎︿覆錛屽彲浠ョ洿鎺ラ氳繃瀛楃涓茬殑璧嬪兼潵榪涜鏋勯犱篃鍙互浣跨敤鏍囧噯C++鐨剋char_t*鎸囬拡榪涜鏋勯犮?/p>

// Initializing a String^ by using string literals
    String^ str1 = "Test"// ok for ANSI text. uses current code page
    String^ str2("Test");
    String
^ str3 = L"Test";
    String
^ str4(L"Test");


    
//Initialize a String^ by using another String^

    String
^ str6(str1);
    auto str7 
= str2;

    
// Initialize a String from wchar_t* and wstring
    wchar_t msg[] = L"Test";
    String
^ str8 = ref new String(msg);
    std::wstring wstr1(L
"Test");
    String
^ str9 = ref new String(wstr1.c_str());
    String
^ str10 = ref new String(wstr1.c_str(), wstr1.length());

 

瀛楃鐨勬搷浣?/strong>

 String鎻愪緵浜嗙浉鍏崇殑鏂規(guī)硶鏉ユ搷浣滃瓧絎︿覆錛屽叾涓彲浠ヤ嬌鐢⊿tring::Data()鏂規(guī)硶鏉ヨ繑鍥炰竴涓猄tring^ 瀵硅薄鐨剋char_t*鎸囬拡銆?/p>

 

// Concatenation 
    auto str1 = "Hello" + " World";
    auto str2 
= str1 + " from C++/CX!";    
    auto str3 
= String::Concat(str2, " and the String class");
    
    
// Comparison
    if (str1 == str2) /*  */ }
    
if (str1->Equals(str2)) /*  */ }
    
if (str1 != str2) /*  */ }
    
if (str1 < str2 || str1 > str2) /*  */};
    
int result = String::CompareOrdinal(str1, str2);
    
    
if(str1 == nullptr) /* */};
    
if(str1->IsEmpty()) /* */};

   
// Accessing individual characters in a String^
    auto it = str1->Begin();
    char16 ch 
= it[0];

 

String綾誨瀷鐨勮漿鎹?/strong>

String綾誨瀷鍙互鍜屾爣鍑咰++鐨剋string榪涜浜掔浉鐨勮漿鎹?/p>

 

// compile with: /ZW
#include <string>

using namespace std;
using namespace Platform;

int main( array<String^>^ args ) 
{
    
// Create a String^ variable statically or dynamically from a 

literal 
string
    String
^ str1 = "AAAAAAAA";
    
    
// Use the value of str1 to create the ws1 wstring variable.
    wstring ws1( str1->Data() ); 
    
// The value of ws1 is L"AAAAAAAA".

    
// Manipulate the wstring value.
    wstring replacement( L"BBB" );
    ws1 
= ws1.replace ( 13, replacement );
    
// The value of ws1 is L"ABBBAAAA".

    
// Assign the modified wstring back to str1. 
    str1 = ref new String( ws1.c_str() ); 

    
return 0;
}




jackdong 2012-10-29 21:51 鍙戣〃璇勮
]]>
Windows 8 C#璋冪敤C++緙栧啓鐨刉indows榪愯鏃剁粍浠?http://m.shnenglu.com/jackdongy/archive/2012/10/29/194042.htmljackdongjackdongMon, 29 Oct 2012 13:48:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194042.htmlhttp://m.shnenglu.com/jackdongy/comments/194042.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194042.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/194042.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/194042.htmlhttp://www.cnblogs.com/linzheng/archive/2012/07/07/2580848.html

Windows榪愯鏃剁粍浠舵槸Windows 8閲岄潰閫氱敤鐨勫叕鍏卞簱錛屽畠鍙互浣跨敤C++錛孋#鎴栬匳B鏉ョ紪鍐欙紝涓嶈繃浣犵殑Windows 8 metro鏄敤浠涔堣璦緙栧啓閮藉彲浠ヨ皟鐢ㄦ棤緙濆湴璋冪敤Windows榪愯鏃剁粍浠躲?/p>

涓嬮潰閫氳繃涓涓狢#緙栧啓鐨刉indows 8欏圭洰鏉ヨ皟鐢ㄤ竴涓敤C++緙栧啓鐨刉indows榪愯鏃剁粍浠躲?/p>

鍒涘緩涓涓猈indows榪愯鏃剁粍浠訛細

緙栧啓濡備笅鐨勪唬鐮侊細

#include "pch.h"
#include 
"WinRTComponent.h"

using namespace CppWinRTComponentDll2;

int CalculatorSample::Add(int x, int y)
{
    
return x+y;
}

澶存枃浠?/p>

#pragma once

using namespace Windows::Foundation;

namespace CppWinRTComponentDll2
{

    
public ref class CalculatorSample sealed
    
{
    
public:
        
int Add(int x, int y);

    }
;
}

 

鍦–#緙栧啓鐨勯」鐩腑璋冪敤Windows榪愯鏃剁粍浠剁殑C++鏂規(guī)硶

娣誨姞Windows榪愯鏃剁粍浠?/p>

UI閮ㄥ垎

 

<Page
    
x:Class="TestWinRTCSDemo.MainPage"
    IsTabStop
="false"
    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local
="using:TestWinRTCSDemo"
    xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable
="d">

    
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        
<StackPanel>
            
<TextBox x:Name="txtX" HorizontalAlignment="Center" Height="45" Width="258"></TextBox>
            
<TextBlock   Text="+" HorizontalAlignment="Center"  Height="45" Width="258" FontSize="14" FontWeight="Bold"/>
            
<TextBox x:Name="txtY" HorizontalAlignment="Center" Height="45" Width="258"></TextBox>
            
<Button Content="璋冪敤WinRT鏂規(guī)硶鏉ョ浉鍔? HorizontalAlignment="Center" Click="Button_Click_1" ></Button>
            
<TextBox x:Name="txtAddResult" HorizontalAlignment="Center" Height="45" Width="258"/>
        
</StackPanel>
    
</Grid>
</Page>

C#浠g爜閮ㄥ垎

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using CppWinRTComponentDll2;//寮曞叆Windows榪愯鏃剁殑絀洪棿

namespace TestWinRTCSDemo
{

    
public sealed partial class MainPage : Page
    
{
        
public MainPage()
        
{
            
this.InitializeComponent();
        }


        
protected override void OnNavigatedTo(NavigationEventArgs e)
        
{
        }


        
private void Button_Click_1(object sender, RoutedEventArgs e)
        
{
            
if (txtX.Text != "" && txtY.Text != "")
            
{
                 CalculatorSample calcobj 
=  new  CalculatorSample();//鐩存帴鍒涘緩Windows榪愯鏃墮噷闈㈢殑瀵硅薄錛屽緢鏂逛究
                 int x = Convert.ToInt32(txtX.Text.ToString());
                 
int y = Convert.ToInt32(txtY.Text.ToString());
                 txtAddResult.Text 
= calcobj.Add(x,y).ToString();//璋冪敤Windows榪愯鏃墮噷闈㈢殑鏂規(guī)硶
            }

        }

    }

}

 

榪愯鐨勬晥鏋?/p>


 




jackdong 2012-10-29 21:48 鍙戣〃璇勮
]]>
Windows 8 寮傛緙栫▼ http://m.shnenglu.com/jackdongy/archive/2012/10/29/194041.htmljackdongjackdongMon, 29 Oct 2012 13:45:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194041.htmlhttp://m.shnenglu.com/jackdongy/comments/194041.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194041.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/194041.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/194041.html闃呰鍏ㄦ枃

jackdong 2012-10-29 21:45 鍙戣〃璇勮
]]>
Windows 8 Hello World http://m.shnenglu.com/jackdongy/archive/2012/10/29/194040.htmljackdongjackdongMon, 29 Oct 2012 13:35:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194040.htmlhttp://m.shnenglu.com/jackdongy/comments/194040.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194040.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/194040.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/194040.html闃呰鍏ㄦ枃

jackdong 2012-10-29 21:35 鍙戣〃璇勮
]]>
Windows Runtime(WinRT) 鎻 http://m.shnenglu.com/jackdongy/archive/2012/10/29/194039.htmljackdongjackdongMon, 29 Oct 2012 13:30:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194039.htmlhttp://m.shnenglu.com/jackdongy/comments/194039.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194039.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/194039.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/194039.html    鐪嬩簡涓狟UILD鐨凱PT錛學(xué)indows Runtime (RT)騫朵笉鏄竴浜涙柊闂葷綉绔欒鐨勯偅鏍峰井杞嚜搴?NET姝﹀姛錛岃屾槸鎭版伆鐩稿弽錛學(xué)inRT鏄疻in32API鐨勭幇浠g増錛屽叾涓湁寰堟繁鐨?NET鐨勫熀鍥狅紝鏄疢etro UI鐨?NET鍩虹錛屽鏋滆冨療Metadata鐨勫彉鍖栵紝W(xué)inRT鐨凙PI瀹氫箟鐨勫厓鏁版嵁鏄熀浜庢爣鍑咵CMA 335錛屼篃灝辨槸.NET鐨勬爣鍑?錛學(xué)inRT涔熸槸涓涓矙綆辯殑鐜錛岄拡瀵笰ppStore鐜璁捐鐨勩?br />

鍩虹鐭ヨ瘑

寰蔣浠ユ帹鍑篧indows 8涓哄鏈猴紝浠ヨВ鍐砏indows闀挎湡瀛樺湪鐨勯棶棰橈紝騫跺甫鏉ヤ簡鏂扮殑鐢ㄦ埛鐣岄潰錛屼嬌寰梂indows鏇村姞瀹夊叏鍜孉ppStore鐨勫晢涓氭ā寮忋傚井杞湪Windows 8 閲屾墦閫犱簡絎笁涓?XAML-based UI 緋葷粺錛?WPF鍙槸涓涓緵 .NET 榪欎釜鍦堝瓙浣跨敤鐨刋AML UI緋葷粺 Silverlight鍙槸緇欐祻瑙堝櫒浣跨敤鐨刋AML UI緋葷粺錛學(xué)indows Phone7灝哠ilverlight鍒頒簡鎵嬫満錛岀幇鍦ㄥ皢XAML甯﹀埌浜嗘兜鐩朠C銆丳ad銆丳hone鐨勬墍鏈夌郴緇燂紙铏界劧寰蔣璁や負騫蟲澘涔熸槸PC錛屾垜榪樻槸鎯沖彨浠朠ad錛岀敤榪噄Pad鐨勯兘鐭ラ亾鑻規(guī)灉鎵瀹氫箟鐨凱ad鍜孭C鏈夊緢澶у尯鍒級銆?/p>

.NET寮鍙戜漢鍛橀兘瀵?NET 鐨凱 / Invoke鍜孋OM Interop 寰堢啛鎮(zhèn)変簡錛岃繖涓ょ鎶鏈嬌寰?NET浜哄憳鍙互浣跨敤Win32 API鍜孋OM緇勪歡錛孧ono涔熸槸浣跨敤P/Invoke鎶鏈垱寤哄師鐢熺殑搴擄紝渚嬪Gtk# 緇戝畾鍒?Gtk+ API, MonoMac 緇戝畾鍒癈ocoa API, Qyoto 緇戝畾鍒癚t API錛孧ono鍑虹幇浜哅onoTouch錛孧onoDroid鍜孧onoMac絳夌瓑寰堟湁鍒涙柊鎬х殑浜у搧銆?COM Interop 榪樺彲浠ヤ嬌寰桟/C++ 浠?C#瀵煎叆Com綾誨瀷搴撱?/p>

鍒涘緩鍘熺敓搴撶殑鏂規(guī)硶寰堝錛屼絾鏄繖浜涘伐浣滈兘寰楁槸鎵嬪伐鍘誨仛錛屽緢涔忓懗鑰屼笖瀹規(guī)槗鍑洪敊錛屼粠榪欑偣鏉ヨWinRT涔熸槸涓涓緢鏈夊垱鏂扮殑錛屽彲浠ヨ鎵鏈夌殑寮鍙戣呯敤鍚屼竴涓ā鍨嬪垱寤篗etro UI鐨勫簲鐢ㄣ?/p>

WinRT

WinRT鏄竴涓柊鐨凙PI 闆嗗悎錛屽叿鏈変互涓嬬壒鎬э細

  • 瀹冨疄鐜頒簡Metro UI瑙勮寖鐨刄I搴?/li>
  • 涓篧indows寮鍙戜漢鍛樻彁渚涗竴涓畝鍗曠殑UI緙栫▼妯″瀷錛屼綘涓嶉渶瑕佸涔?fàn)Win32API鐨勯偅浜涘鏉傜殑API浜?/li>
  • 瀹冧嬌鐢╔AML-base鐨刄I緋葷粺
  • API閮借璁℃垚浜嗗紓姝ョ殑
  • 瀹冨拰.NET涓鏍鋒槸涓矙綆辯殑API錛岃嚜鎴愪綋緋伙紝鐢ㄤ簬鍒涘緩AppStore涓婄殑搴旂敤紼嬪簭銆?/li>
  • API鐨勫厓鏁版嵁鏍煎紡鏄疎CMA335錛屽拰.NET涓鏍風(fēng)殑鏍囧噯銆傝繖鏄笉鏄剰鍛崇潃浠ュ悗Mono涔熷彲浠ュ湪xUnit涓婂幓瀹炵幇榪欐牱鐨凙PI鍛紵

WinRT鍖呰鐨勬柊鐨勭敤鎴風(fēng)晫闈㈢郴緇燂紝鍜學(xué)in32API涓鏍鋒槸Com鐨勪笂灞傘?/p>

WinRT Projections

鎴戜滑鎵璇寸殑“Binding”錛屽井杞幇鍦ㄥ彨鍋?#8220;Projections”錛屽張鏄竴涓柊鍚嶈瘝銆侾rojections灝辨槸鍚戜笁涓幆澧?Native (C and C++), HTML/Javascript 鍜?NET 鏆撮湶鎺ュ彛鐨勮繃紼嬨傛墍浠ュ湪Win8涓婂悇綾誨紑鍙戣呬緷鐒跺彲浠ョ敤鐫涓嶅悓鐨勫伐鍏鳳紝浣嗘槸鍗存槸浣跨敤鐫緇熶竴鐨勬ā鍨嬨?/p>

濡傛灉寮鍙戣呬嬌鐢?NET鎴栬匔++ 鍐欑殑緇勪歡錛屽畠鐨凙PI琚瓨鍌ㄥ湪涓涓猈inMD鏂囦歡閲岋紝浣犲彲浠ュ湪涓夌鐜錛堝師鐢熴乯avascript鍜?NET錛夈傚嵆浣夸綘鐨勭粍浠舵槸鐢–++ 鍐欑殑錛屼篃涓嶉渶瑕侀氳繃COM鍚戝鏆撮湶錛屼嬌鐢ㄨ搗鏉ユ洿鍍忔槸涓涓潰鍚戝璞$殑C++ API銆?/p>

WinRT鐨勫簳灞傚畾涔変簡涓濂楀熀鏈殑綾誨瀷鍜屽悇縐嶇幆澧冪殑鏄犲皠錛岃繖鏄笉鏄緢鍍?NET鐜閲岄潰瀵逛笉鍚岃璦鐨勬敮鎸佸搱銆?/p>

寮傛API

寰蔣璁や負錛屽綋緇欏紑鍙戣呬竴涓嬌鐢ㄥ悓姝ュ拰寮傛鐨凙PI鐨勯夋嫨鐨勬椂鍊欙紝寮鍙戣呬細閫夋嫨綆鍗曠殑鍚屾API錛岃繖鍦ㄦ垜浠殑.NET 緙栫▼瀹炶返涓緱鍒拌瘉鏄庯紝.NET鏈夊緢鎴愮啛鐨勫紓姝ョ紪紼嬫ā鍨嬶紝榪樻湁鐗規(guī)剰涓哄茍琛屽拰寮傛澶勭悊鑰岃璁$殑F#錛岀粨鏋滄槸浠涔堝憿錛屽悇浣嶅悓瀛﹀績閲屾湁鏁般?/p>

鍦╓inRT涓紝寰蔣涓鐩撮伒寰竴涓畝鍗曠殑瑙勫垯錛氬鏋滀竴涓狝PI棰勮鑰楁椂瓚呰繃50姣錛岄偅涔圓PI灝辨槸寮傛鐨勶紝涔熷氨鏄API鏄紓姝ョ殑鍝︼紝榪欐牱灝辮兘紜繚Metro UI涓婄殑鎿嶄綔浣撻獙鏄渶濂界殑銆?/p>

寮傛緙栫▼鍘嗘潵鏄竴涓箒鐞愮殑榪囩▼錛屽洖璋冨拰鐘舵侊紝榪樻湁寮傚父澶勭悊絳夈備負浜嗙畝鍖栬繖涓繃紼嬶紝C#鍜孷B涔熸墿灞曚簡鏀寔 F#-inspired await/async 妯″瀷錛屽紓姝ョ紪紼嬪彉鎴愪簡嬈箰涔嬫梾銆?/p>

.NET鐨勯瑕佸湴浣嶄笉瑙佷簡鍚楋紵

涔嬪墠鐨勬柊闂諱腑涓鐩村湪璐ㄧ枒.NET 琚井杞姏寮冧簡錛屽綋鐒朵笉鏄簡銆備篃涓嶆槸鎵鏈夌殑.NET API 閮介泦鎴愬埌浜哤inRT涓紝鍙槸涓涓瓙闆嗐?/p>

褰撲綘浣跨敤C#鍜孷B錛屼綘浣跨敤鐨勬槸瀹屾暣鐨?NET妗嗘灦銆備絾鏄粬浠彧鏆撮湶浜嗕竴涓緝?yōu)畯鐨勫瓙闆咥PI緇橶indows 8鐨勫紑鍙戣呫備綘鍙兘浼氭兂錛屾垜鍙互閫氳繃涓浜涙妧宸т嬌鐢ㄥ埌鏁翠釜.NET錛屽鏋滀綘鐨勭▼搴忎笉闇瑕佹彁浜ppStore涓婃帴鍙楀井杞殑瀹℃牳錛岃繖鏄彲浠ョ殑銆傝繖縐嶇瓥鐣ユ槑鏄炬槸璺熻嫻鏋滃鐨勩?/p>

鍊熸鏈轟細.NET鍥㈤槦涔熷.NET鍋氫簡涓嬈℃竻鐞嗭紝mscorlib.dll鍜孲ystem.dll涓凡琚垎鍓插湪涓嶅悓鐨勫簱閲屽ご浜嗭紝闅忕潃Win8鍙戝竷鐨?NET鐗堟湰鏄?.5浜嗭紝涔熷氨鏄.NET 4.5涓嶆槸.NET 4鐨勭畝鍗曡ˉ涓佸寘錛岄噷澶村姞浜嗕笉灝戜笢瑗匡紝ASP.NET鐨勭増鏈彿涔熸槸4.5錛屼笉鍍?NET 2.0 ~3.5 SP1錛孉SP.net鐨勭増鏈繕鏄?銆?銆備負浜嗗湪Win8閲屽紑鍙戯紝寮濮嬪涔?NET 4.5鍙堟槸蹇呴』鐨勪簡錛岃繖閲屽叧娉ㄧ殑闆嗕腑鍦ㄥ鎴風(fēng)寮鍙戯紝鍚屾牱鐨勫湪鏈嶅姟鍣ㄧ寮鍙戞柟闈?NET 4.5涔熷姞鍏ュぇ閲忕殑騫茶揣銆?/p>

鍒涘緩WinRT 緇勪歡

铏界劧WinRT鏀寔寰堝鐨勮璦錛屼絾鏄井杞彧鏄敤C++鍜?NET婕旂ず浜嗗浣曞紑鍙戜竴涓猈inRT緇勪歡錛屼嬌鐢?NET鏉ュ紑鍙慦inRT緇勪歡浼氭瘮C++綆鍗曞緱澶氥備篃涓嶆槸鎵鏈夌殑.NET鐗規(guī)ч兘鑳界敤涓婂摝錛屾瘮濡傜粍浠剁被灝變笉鑳戒嬌鐢╬rivate 瀛楁錛屽湪寮傛鐨凙PI閲屼笉鑳戒嬌鐢═ask<T> 錛岃鐢↖AsyncOperation 浠f浛銆?/p>

public sealed class AddTwo
{
public int Add (int a, int b)
{
return a + b;
}

public async IAsyncOperation SubAsync (int a, int b)
{
return a - await (CountEveryBitByHand (b));
}
}

浣犱細鍙戠幇涓婅堪浠g爜娌℃湁浠諱綍褰㈠紡鐨凜OM澹版槑錛屽敮涓闄愬埗鐨勬槸錛岀被蹇呴』鏄釜瀵嗗皝鐨勶紙闄ら潪浣犳槸鍦ㄥ垱寤轟竴涓猉AML UI緇勪歡錛岃繖縐嶆儏褰笅榪欑闄愬埗鏄帴瑙︾殑錛?/p>

UI緙栫▼

褰撴秹鍙婂埌鐢ㄦ埛鐣岄潰鐨勫紑鍙戠殑鏃跺欙紝浣犱綘鍙互浣跨敤HTML涓嶤SS鏍峰紡鎴栦嬌鐢╔AML鐨勪綘鐨勫簲鐢ㄧ▼搴忕殑鐢ㄦ埛鐣岄潰銆傚綋浣犲洖鍒扮晫闈㈠眰錛屽氨鍙互鐢℉TML & CSS鎴栬呮槸XAML UI錛岀敤HTML& Css鍋氬嚭鏉ョ殑鐣岄潰灝辨槸Web浜嗭紝鑰屾槸涓涓猈indows搴旂敤錛屾棭鍦╒ista寮濮嬪氨鏈変簡綾諱技鐨勫簲鐢紝W(xué)indows7涓婂仛浜嗘敼榪涳紝鍙仛Gadgets 錛學(xué)indows 8灝辮繘鍖栧埌浜哅etero UI錛屽拰C++銆?NET騫墮┚榻愰┍浜嗐?/p>

Windows8鐨勫紑鍙戞鏋跺茍娌℃湁鍩轟簬HTML5鍜孞avaScript錛屽紑鍙戣呭畬鍏ㄥ彲浠ョ敤鍘熺敓C++銆丆#鍜孲ilverlight鍘誨紑鍙戝騫蟲澘鍜岃Е鎺у弸濂界殑搴旂敤錛孒TML5鍜孞avaScript鍙槸鎻愪緵浜嗕竴縐嶉夋嫨銆?/p>

浣滆? 鑷敱銆佸垱鏂般佺爺絀躲佹帰绱?#8230;…
鍑哄錛?a target="_blank">http://shanyou.cnblogs.com/
鐗堟潈錛氭湰鏂囩増鏉冨綊浣滆呭拰鍗氬鍥叡鏈?br />杞澆錛氭榪庤漿杞斤紝涓轟簡淇濆瓨浣滆呯殑鍒涗綔鐑儏錛岃鎸夎姹傘愯漿杞姐戯紝璋㈣阿
瑕佹眰錛氭湭緇忎綔鑰呭悓鎰忥紝蹇呴』淇濈暀姝ゆ澹版槑錛涘繀欏誨湪鏂囩珷涓粰鍑哄師鏂囪繛鎺ワ紱鍚﹀垯蹇呯┒娉曞緥璐d換


jackdong 2012-10-29 21:30 鍙戣〃璇勮
]]>
鍙緵C#鍜孷isual Basic璋冪敤鐨刉inRT APIhttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194038.htmljackdongjackdongMon, 29 Oct 2012 13:27:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194038.htmlhttp://m.shnenglu.com/jackdongy/comments/194038.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194038.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/194038.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/194038.htmlC# and Visual Basic on the WinRT API

銆銆錛堜綔鑰咃細Jonathan Allen 璇戣咃細渚集钖?/a>錛?/p>

銆銆灝界鎴戜滑鍙互浣跨敤 .NET 璇█鏉ヨ皟鐢?Win32 API錛屼絾閭f牱鍋氫細寰堝洶闅俱傛墍浠ュ湪榪囧幓鐨勪袱騫撮棿寰蔣涓鐩村湪鏋勫緩鏇夸唬鐨勬柟妗堬紝瀹冨氨鏄疄鐜頒簡璺ㄨ璦鏀寔鐨?Windows 榪愯鏃訛紝鍗?WinRT銆傛垜浠彲浠ュ湪 C++ 鍜?.NET 涓垱寤?WinRT 緇勪歡錛屽茍涓斿彲鐢變簩鑰呬互鍙?JavaScript 浣跨敤銆?/p>

銆銆灝界 COM 鍦ㄨ〃闈笂鏄竴縐嶅熀浜?OOP 鐨勬鏋訛紝浣嗗畠涓?.NET 涔嬮棿鏈夊緢澶х殑鍖哄埆銆傚湪 WinRT 鍑虹幇涔嬪墠錛孋OM 鏄熀浜庢帴鍙h屼笉鏄熀浜庣被鐨勩傝繖鎰忓懗鐫鍏朵腑緙哄皯寰堝 .NET 寮鍙戣呰涓哄簲璇ユ湁鐨勫唴瀹癸紝鍍忔瀯閫犲嚱鏁頒互鍙婇潤鎬佹柟娉曠瓑銆?a >C++緇勪歡鎵╁睍瑙e喅浜嗚繖涓棶棰樸?/p>

銆銆WinRT 褰㈠紡鐨?COM 浣跨敤鐨勫厓鏁版嵁鏍煎紡鍜岄氱敤璇█榪愯鏃訛紙Common Language Runtime錛夌浉鍚屻傝繖浜涗俊鎭瓨鍌ㄥ湪琛ㄧず緇撴瀯鐨?WINMD 鏂囦歡涓紝灝界娌℃湁瀹炵幇錛屼絾鍦ㄦ墍鏈夊叕鏈夌被涓兘浼氭湁銆侳XCop 琚敤浜庢楠岃繖浜涙枃浠舵墍鏆撮湶鐨?API 鏄惁閬靛驚 .NET Framework 鐨勮璁℃寚鍗椼?/p>

銆銆.NET 鍦ㄦ渶寮濮嬫椂灝辨湁“API 璁捐濮斿憳浼氾紙API Design Board錛?#8221;銆傚彈姝ゅ惎鍙戯紝W(xué)indows 榪愯鏃朵篃浼氬緩绔?API 璁捐濮斿憳浼氭潵瀵瑰叾榪涜綆$悊銆傚緢澶氭渶鍒濈殑鎴愬憳閮藉湪 .NET 濮斿憳浼氫腑錛屽茍涓斿緢澶氭寚鍗楅兘鐩存帴鏉ヨ嚜浜?.NET 鍩烘湰綾誨簱鎵閬靛驚鐨勫師鍒欍?/p>

銆銆Windows 榪愯鏃朵細榪斿洖 HRESULT錛岃屼笉浼氭姏鍑哄紓甯搞傚浜庝紬鎵鍛ㄧ煡鐨?HRESULT 鍊兼潵璇達紝浼氭姏鍑虹浉搴旂殑寮傚父錛岃屽浜庡叾浠栧煎氨鍙兘鎶涘嚭 COMException銆?/p>

銆銆WinRT 鐨?IAsyncOperation 鎺ュ彛鐜板湪浣跨敤鏂扮殑 async/await 鍏抽敭瀛楋紝灝卞儚 .NET 鐨?Task 瀵硅薄涓鏍楓?/p>

銆銆鎵鏈?Windows 榪愯鏃剁殑闆嗗悎鎺ュ彛閮借鏄犲皠鍒?.NET 妗嗘灦鐨勭瓑浠風(fēng)墿涓娿傚湪 .NET 4.5涓坊鍔犱簡 IReadOnlyList 鍜?IReadOnlyDictionary錛岀敤鏉ヨ礋璐e鐞?WinRT 涓殑鍙闆嗗悎銆?/p>

銆銆WinRT 鍜?.NET API 鍦ㄤ袱涓湴鏂規(guī)棤娉曞尮閰嶃俉inRT 鐨?stream 鏃犳硶鐩存帴涓?.NET 鐨?IO.Stream 綾誨吋瀹癸紝浣嗘槸鍙互璋冪敤鍚嶄負 AsStream 鐨勬墿灞曟柟娉曟潵榪涜杞崲銆俉inRT 榪樻嫢鏈夊悕涓?IBuffer 鐨勬帴鍙o紝榪欏湪 .NET 涓篃鏃犳硶綆鍗曞湴瀹炵幇銆傚湪姝や篃鏈変竴涓墿灞曟柟娉曟潵榪涜 IBuffer 鍜屾瘮鐗規(guī)暟緇勪箣闂寸殑杞崲銆?/p>

銆銆鎴戜滑鍙互浣跨敤 C# 鍜?VB 鏉ュ垱寤烘柊鐨?Windows 榪愯鏃剁▼搴忓簱錛岃繃紼嬮潪甯哥畝鍗曘備負浜嗘妸綾繪毚闇蹭負 Windows 榪愯鏃剁粍浠訛紝鎴戜滑鍙渶瑕佹妸欏圭洰綾誨瀷璁劇疆涓?#8220;WINMD 鏂囦歡”錛屽茍紜繚閬靛驚浠ヤ笅瑙勫垯錛?/p>

  1. API 絳懼悕鍙嬌鐢?Windows 榪愯鏃剁殑綾誨瀷
  2. 緇撴瀯浣撳彧鑳芥嫢鏈夊叕鏈夌殑鏁版嵁瀛楁
  3. 鍙厑璁稿 XAML 鎺т歡浣跨敤緇ф壙錛屽叾瀹冪被鍨嬮兘蹇呴』浣跨敤 sealed 鍏抽敭瀛椼?/li>
  4. 鍙敮鎸佸唴寤虹殑娉涘瀷

銆銆緙栬瘧榪欎簺搴撲箣鍚庯紝鎴戜滑灝卞彲浠ュ湪 C++ 鍜?JavaScript 涓皟鐢ㄥ畠浠紝灝卞儚浠?.NET 涓皟鐢ㄤ竴鏍風(fēng)畝鍗曘?/p>

銆銆璀﹀憡

銆銆鐢變簬 WinRT 鏄熀浜?COM 鏋勫緩鐨勶紝鎵浠ヤ綘鍚屾牱浼氭湁寮曠敤璁℃暟鍜?mark-and-sweep 鍨冨溇鍥炴敹鍣ㄤ箣闂存棤娉曡瀺鍚堢殑闂銆傚浜庡疄鐜頒簡鏋愭瀯鍑芥暟閲婃斁闈炲唴瀛樿祫婧愮殑瀵硅薄鏉ヨ錛岃繖鏄渶甯歌鐨勯棶棰樸傛垜浠彲浠ヨ冭檻璋冪敤“Marshal.FinalReleaseComObject”鏉ヨВ鍐抽棶棰橈紝浣嗘槸閭f湰韜篃瀛樺湪闂銆?/p>

銆銆COM 椋庢牸鐨?marshaling 闇瑕佸湪 .NET 鍜屾湰鍦扮粍浠朵箣闂磋皟鐢ㄣ傚敖綆¤繖閫氬父鏄棤鍏崇揣瑕佺殑錛屼絾鏄鏋?API 闈炲父涓嶆寮忥紝閭d箞灝變細鍑虹幇闂銆?/p>

銆銆鍐呭緩鐨?WinRT 搴擄紙鑰屼笉鏄?XAML錛夋槸鍦?Metro 榪愯鏃剁幆澧冧箣澶栨彁渚涚殑銆傜劧鑰岋紝絎笁鏂圭殑 WinRT 搴撳茍闈炲姝ゃ傝繖鏄?WinRT 涓縺媧繪鏋訛紙activation framework錛夌殑闄愬埗錛岃屼笉鏄?.NET 鐨勯棶棰樸?/p>

jackdong 2012-10-29 21:27 鍙戣〃璇勮
]]>
鏋勫緩鎮(zhèn)ㄨ嚜鏈夌殑Windows榪愯鏃剁粍浠朵互浜や粯鍑鴻壊鐨凪etro椋庢牸搴旂敤http://m.shnenglu.com/jackdongy/archive/2012/10/29/194037.htmljackdongjackdongMon, 29 Oct 2012 13:16:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194037.htmlhttp://m.shnenglu.com/jackdongy/comments/194037.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194037.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/194037.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/194037.htmlhttp://www.ithov.com/article/118831.shtml

瀵逛簬 Windows 8錛屾垜浠交搴曢瑕嗘敼閫犱簡騫沖彴錛屾?zhèn)ㄥ彲浠ラ夋嫨鎮(zhèn)ㄥ凡浜嗚В鐨勭紪紼嬭璦鍜屾妧鏈潵鏋勫緩涓鴻澶囧拰澶栧艦鍥犵礌瀹氬埗鐨勫簲鐢ㄣ傝屽浜?Windows 榪愯鏃訛紝鎮(zhèn)ㄧ敋鑷沖彲浠ュ湪鍗曚竴搴旂敤涓交鏉懼湴浣跨敤澶氱璇█銆傞氳繃浣跨敤 C++ 鏉ユ瀯寤烘?zhèn)ㄨ嚜鏈夌?Windows 榪愯鏃剁粍浠訛紝鎮(zhèn)ㄥ彲浠ラ氳繃鍙笌 Xbox 360 鎺у埗鍣ㄤ氦浜掔殑 HTML 鍜?JavaScript 鏉ユ瀯寤哄嚭鑹茬殑 Metro 椋庢牸搴旂敤銆傛?zhèn)ㄥ彲浠ユ瀯寰忛氳繃 Windows 榪愯鏃剁粍浠跺叕寮鐨勫彲閲嶇敤 XAML 鎺т歡錛岃繖浜涙帶浠跺彲渚涗嬌鐢?C++ 鍜?C# 緙栧啓鐨?Metro 椋庢牸搴旂敤鍗蟲椂浣跨敤銆傚疄璐ㄤ笂錛屾垜浠凡鍏佽鎮(zhèn)ㄥ湪 Windows 8 騫沖彴涓婁嬌鐢ㄦ?zhèn)ㄩ夋嫨鐨勮璦騫朵互姣笉榪佸氨鐨勬柟寮忔潵鏋勫緩搴旂敤銆?/p>

鍦ㄦ湰綃囧崥鏂囦腑錛屾垜浠皢璁ㄨ鏋勫緩 Windows 榪愯鏃剁粍浠舵墍闇浜嗚В鐨勫繀瑕佺煡璇嗐?/p>

鍩虹鐭ヨ瘑

Windows 榪愯鏃舵槸瀹炵幇璇█閫夋嫨鐨勬牳蹇冦傚畠鑷韓鏄叕寮鐨勶紝浠庤屾?zhèn)ㄥ彲浠ヤ?JavaScript銆丆++銆丆# 鍜?Visual Basic 涓互鑷劧鑰岀啛鎮(zhèn)夌殑鏂瑰紡瀵瑰叾榪涜璋冪敤銆傝繖縐嶅熀紜鏂規(guī)硶涔熷悓鏍烽傜敤浜庢瀯寤烘?zhèn)ㄨ嚜鏈夌?API銆?/p>

鎮(zhèn)ㄥ湪搴旂敤涓瀯寤哄拰鎵撳寘鐨?Windows 榪愯鏃剁粍浠墮氬父琚О浣滅涓夋柟 Windows 榪愯鏃剁粍浠躲傝繖涓庡凡浣滀負 Windows 8 騫沖彴涓竴閮ㄥ垎鐨勭涓鏂圭粍浠舵湁鎵涓嶅悓銆傛?zhèn)ㄥ彲浠ヤ娇鐢?C++銆丆# 鎴?Visual Basic 緙栧啓榪欎簺絎笁鏂?Windows 榪愯鏃剁粍浠躲傛?zhèn)ㄥ彲浠ヤ粠鋼Q浣曚綅緗皟鍏ュ畠浠叕寮鐨?API錛屽寘鎷墦鍖呭埌鎮(zhèn)ㄧ殑搴旂敤涓殑鍏朵粬 Windows 榪愯鏃剁粍浠躲傛?zhèn)ㄤ篃鍙互鋴社敤鋼Q浣曡璦鏉ヨ皟鍏ラ氳繃 Windows 榪愯鏃剁粍浠跺叕寮鐨?API銆?/p>

鎮(zhèn)ㄤ負搴旂敤緙栧啓鐨?Windows 榪愯鏃剁粍浠跺彲浣跨敤 Windows 榪愯鏃?API銆乄in32銆丆OM銆?NET API 鎴栫涓夋柟搴擄紙鍙瀹冧滑鏀寔 Metro 椋庢牸搴旂敤寮鍙戯級銆傝娉ㄦ剰鎮(zhèn)ㄦ墍鏋勫緩鐨?Windows 榪愯鏃剁粍浠朵笌浼犵粺鎰忎箟涓婂叕寮 API 鐨?C++ DLL 鎴?.NET 紼嬪簭闆嗗茍涓嶇浉鍚屻備嬌鐢?.Net 鍒涘緩綾誨簱鎴栬呬嬌鐢?C++ 鍒涘緩鐙珛鐨?DLL 涓庢瀯寤?Windows 榪愯鏃剁粍浠跺畬鍏ㄤ笉鍚屻俉indows 榪愯鏃剁粍浠跺湪鍏紑 Windows 榪愯鏃跺厓鏁版嵁鐨?.wnmd 鏂囦歡涓0鏄庯紝騫朵笖鍏佽 JavaScript 絳夎璦鏉ヨ嚜鐒跺湴浣跨敤 Windows 榪愯鏃?API錛堜緥濡傦紝鍚?JavaScript 鍏紑鐨?API 鐨?pascalCasedNames 鏀寔錛夈俉indows 榪愯鏃跺厓鏁版嵁榪樺厑璁?Visual Studio 鎻愪緵鍑鴻壊鐨勫伐鍏峰姛鑳斤紝濡?IntelliSense 鏀寔銆?/p>

涓轟綍瑕佹瀯寤烘?zhèn)ㄨ嚜鏈夌?Windows 榪愯鏃剁粍浠?/strong>

鍒涘緩 Windows 榪愯鏃剁粍浠跺彲甯姪鎮(zhèn)ㄥ鍙噸鐢ㄦу拰璇█浜掓搷浣滄ц繘琛岃璁°傛垜浠潵鐪嬩竴涓嬪睍紺哄浣曚嬌鐢ㄧ涓夋柟 Windows 榪愯鏃剁粍浠舵潵鏋勫緩鏇翠匠浣撻獙鐨勪竴浜涘簲鐢ㄧ▼搴忔柟妗堛?/p>

鍦ㄦ?zhèn)ㄧ?Metro 椋庢牸搴旂敤涓嬌鐢?Win32 鍜?COM API

Internet Explorer 10 鎻愪緵鐨勫鉤鍙板厑璁告?zhèn)ㄤ娇鐢?HTML銆丆SS 鍜?JavaScript 鍒涘緩鍑鴻壊鐨?Metro 椋庢牸搴旂敤浣撻獙銆備絾鏄紝濡傛灉鎮(zhèn)ㄥ凡浣跨敤 HTML5 Canvas 鏋勫緩娓告垙錛屽茍甯屾湜涓?Windows 鐨?Xbox 360 鎺у埗鍣ㄧ浉闆嗘垚錛岄偅鎯呭喌浼氭庢牱錛熷厑璁稿簲鐢ㄤ粠鎺у埗鍣ㄦ帴鏀惰緭鍏ョ殑 XInput API 浼氬皢涓嶅彲鐢ㄧ殑 Win32 API 鐩存帴鍚?JavaScript 鍏紑銆?/p>

榪欐槸閫氳繃鍒涘緩 Windows 榪愯鏃剁粍浠舵潵瑙e喅璇ラ棶棰樺茍浣挎?zhèn)ㄨ兘澶熷湪鍩轰?HTML 鐨?Metro 椋庢牸搴旂敤涓嬌鐢?XInput API 鐨勭粡鍏哥ず渚嬨俋Input 鍜?JavaScript 鎺у埗鍣ㄨ崏鍥劇ず渚嬪噯紜湴灞曠幇浜嗚繖涓鐐廣傝紺轟緥搴旂敤鍖呭惈涓涓父鎴忔帶鍒跺櫒 Windows 榪愯鏃剁粍浠訛紝瀹冧嬌鐢?C++ 緙栧啓騫剁敤浜庡寘瑁?XInput API 鍏紑鐨勫姛鑳姐傝鎺у埗鍣ㄨ崏鍥懼熀浜?HTML 鐨勫簲鐢ㄤ嬌鐢ㄦ父鎴忔帶鍒跺櫒 C++ Windows 榪愯鏃剁粍浠舵潵瀹炵幇涓?Xbox 360 鎺у埗鍣ㄧ殑浜や簰銆?/p>

榪欎竴鏂規(guī)錛堟棤娉曞崟鐙嬌鐢?HTML 鍜?JavaScript 瀹炵幇錛夋槸閫氳繃鍒涘緩絎笁鏂?Windows 榪愯鏃剁粍浠舵潵瀹屾垚閫氳繃鍏朵粬鏂規(guī)硶鏃犳硶瀹屾垚鐨勫鏉傛柟妗堢殑瀹岀編紺轟緥銆?/p>

澶ц綆楅噺鐨勬搷浣?/strong>

涓鴻濡傜瀛︺佸伐紼嬪拰鍦板浘/鍦扮悊絳夊瓧孌靛垱寤哄簲鐢ㄩ氬父闇瑕佸ぇ璁$畻閲忕殑鎿嶄綔銆傝繖浜涘ぇ閲忕殑鎿嶄綔閫氬父闇瑕佸己澶х殑騫惰澶勭悊涓旈潪甯擱傚悎浜庝嬌鐢?C++ 鑾峰緱鏈浣蟲ц兘銆傚湪寮鍙?Bing 鍦板浘鏃呰浼樺寲鍣紙浣跨敤 JavaScript 鍜?C++ 寮鍙戠殑 Metro 椋庢牸搴旂敤錛変腑錛屾垜浠湅鍒頒簡鍙︿竴縐嶆柟妗堬紝鍗充嬌鐢?C++ 鍒涘緩 Windows 榪愯鏃剁粍浠朵嬌鎴戜滑鍙互鍒涘緩鏈浣崇殑搴旂敤浣撻獙銆?/p>

鎮(zhèn)ㄥ彲鑳戒細鑰冭檻涓轟綍鐢ㄦ埛瀹屽叏浣跨敤鏈湴鏁版嵁璁$畻鏃呰璺嚎錛岃屼粬浠彲浠ュ湪浜戠鐨?Bing 鏈嶅姟鍣?/u>涓婅繍琛岃繖縐嶅ぇ璁$畻閲忕殑鎿嶄綔銆侭ing 鍦板浘涓哄叕寮鎵ц姝ゆ搷浣滅殑 JavaScript API錛岃屾湁鏃跺簲鐢ㄥ繀欏昏劚鏈鴻繍琛屻傚彟澶栵紝鎴戜滑涔熷笇鏈涚敤鎴烽氳繃瑙︽帶瀹炴椂鎷栧姩鍜屾洿鏀硅礬綰褲傚鏋滄垜浠湪鏈湴榪愯姝ょ被澶ч噺鐨勬搷浣滐紝鍒欐垜浠渶瑕佸垱寤虹敋鑷蟲洿濂界殑浣撻獙銆?/p>

閫氳繃浣跨敤騫惰浠誨姟綾誨簱鑰岀敤 C++ 緙栧啓澶ц綆楅噺鐨勬搷浣滐紝鎴戜滑鍙互鍒╃敤瀹㈡埛绔殑寮哄ぇ鍔熻兘鏉ヤ負鐢ㄦ埛鍒涘緩鍑鴻壊鐨勪嬌鐢ㄤ綋楠屻俉indows 榪愯鏃跺彲瀹岀編閫傜敤浜庤鏂規(guī)錛屽畠鍏佽鎴戜滑浣跨敤 Bing 鍦板浘 AJAX 鎺т歡鏉ュ垱寤轟嬌鐢?HTML 鍜?JavaScript 鐨勪赴瀵岀敤鎴風(fēng)晫闈?(UI)錛岃屼嬌鐢?C++ 浠g爜榪愯鐨勬墍鏈夊ぇ閲忚礬綰挎搷浣滃彲閫氳繃騫惰璁$畻鎻愰珮璁$畻鐨勯熷害銆?/p>

搴?/strong>

紺懼尯涓嫢鏈夌潃澶ч噺鑰屽嚭鑹茬殑搴擄紝寮鍙戜漢鍛樺凡榪涜姹囨誨茍涓庡箍澶х敤鎴峰叡浜傚湪榪囧幓錛屾?zhèn)ㄥ彲鑳戒細璁や负閲嶇敤鍏朵腑鐨勪竴浜涘簱鍙兘寰堝叿鎸戞垬鎬э紝濡傛灉瀹冧滑涓庡疄鐜版?zhèn)ㄧ殑搴旂敤鐨劸~栫▼璇█涓嶅尮閰嶇殑璇濄備緥濡傦紝鎮(zhèn)ㄦ瀯寤轟簡涓涓嚭鑹茬殑 .NET 搴旂敤錛屼絾蹇呴』瀹屾垚鐥涜嫤鐨勪簰鎿嶄綔钃濇錛堝 PInvoke錛夛紝鎵嶈兘浣跨敤閫氳繃 C++ 緙栧啓鐨勫簱銆?/p>

Windows 榪愯鏃跺彲浠ュ譏鍚?Windows 8 涓殑璇█鍒嗘錛屼嬌鍖呭惈鍗曚釜鍩烘湰浠g爜鐨勫崟涓 Windows 榪愯鏃剁粍浠跺簱鍙互鎵╁睍鑷蟲洿騫挎硾鐨勫紑鍙戜漢鍛橈紝鏃犺緇勪歡鐨勮璦鎴栧簲鐢ㄧ殑涓昏緙栫▼璇█鏄粈涔堛?/p>

鐜板湪錛屾?zhèn)ㄥ彲浠ュ垱寰忎竴涓彲渚涘叏閮?C++ 鍜?C# 寮鍙戜漢鍛樹嬌鐢ㄧ殑鍏紑 Windows 榪愯鏃剁殑鍗曚竴 XAML 鑷畾涔夋帶浠躲傛?zhèn)ㄥ彲浠ュ湪鎮(zhèn)ㄧ殑鍩轰?XAML 鎴?HTML 鐨?Metro 椋庢牸搴旂敤涓嬌鐢ㄧ敱寮鍙戜漢鍛樺叡浜殑鍚勭鏁版嵁瀛樺偍 Windows 榪愯鏃跺簱銆傛墍鏈夎繖浜涙柟妗堝潎鏃犻渶緙栧啓浜掓搷浣滀唬鐮佸嵆鍙疄鐜般?/p>

鎴戜滑璁や負 Windows 榪愯鏃跺皢鎯犲強鐢卞紑鍙戜漢鍛樺垱寤哄茍涓庣ぞ鍖轟腑騫挎硾鐨?Metro 椋庢牸搴旂敤錕斤拷鍙戜漢鍛樺叡浜殑鍚勭搴撱傜幇鍦紝鎴戜滑鏉ョ湅鐪嬩袱涓睍紺轟嬌鐢?C++/CX 鍜?C# 鏋勫緩絎笁璇?Windows 榪愯鏃剁粍浠剁殑鍏蜂綋紺轟緥銆?/p>

搴旂敤鍦烘櫙 1錛氶氳繃鏈満闊抽鏉ュ寮烘?zhèn)ㄧ殑搴旂?/strong>

鍋囪鎴戜滑瑕佷嬌鐢ㄦ嫢鏈?C# 緙栧啓鐨勫簲鐢ㄩ昏緫鏀寔鐨?XAML 鏉ユ瀯寤轟竴涓蔣浠跺悎鎴愬櫒搴旂敤銆備負浜嗗悜鎴戜滑鐨勯煶涔愬簲鐢ㄦ坊鍔犺繃婊ゅ櫒錛屾垜浠皢浣跨敤 XAudio 鏉ョ洿鎺ユ帶鍒墮煶棰戠紦鍐插櫒銆?/p>

灝?Windows 榪愯鏃剁粍浠舵坊鍔犲埌鎴戜滑鐨勮В鍐蟲柟妗?/p>

浣跨敤 Visual Studio錛屾垜浠彲浠ュ皢鍏ㄦ柊鐨?C++ Windows 榪愯鏃剁粍浠墮」鐩坊鍔犲埌鎴戜滑鐜版湁鐨勮В鍐蟲柟妗堛傝 Windows 榪愯鏃剁粍浠跺寘鎷煶涔愬鐞嗗姛鑳斤細

浣跨敤 Visual Studio 鏉ュ皢涓涓叏鏂扮殑 C++ Windows 榪愯鏃剁粍浠舵坊鍔犲埌鎴戜滑鐨勯煶涔愬簲鐢? src=
鍥?2錛氭坊鍔犱竴涓叏鏂扮殑 C++ Windows 榪愯鏃剁粍浠?/p>

Visual Studio 涓烘垜浠垱寤轟簡涓涓?C++ 欏圭洰錛岀敤浜庡叕寮 API錛岃?API 鐨勫疄鐜板皢鎵撳寘鍒頒竴涓?DLL 鏂囦歡錛岃?Windows 榪愯鏃跺厓鏁版嵁灝嗘墦鍖呭埌 winmd 鏂囦歡涓傚畠浠叏閮ㄥ彲鐢ㄤ簬鎴戜滑鐨?C# 欏圭洰銆?/p>

瀹氫箟鍚戞垜浠殑 XAML C# 欏圭洰鍏紑鐨勭被

鎴戜滑浣跨敤 C++/CX 鏉ユ瀯寤哄悜 C# 欏圭洰鍏紑鐨?API錛屼絾鎮(zhèn)ㄤ篃鍙互浣跨敤 Windows 榪愯鏃?C++ 妯℃澘搴?(WRL)銆傛垜浠鍏堝畾涔変竴涓潪甯稿熀鏈殑綾諱互灝佽 XAudio 鍔熻兘錛?/p>

XAudioWrapper.h

#pragma once

#include "mmreg.h"
#include <vector>
#include <memory>

namespace XAudioWrapper
{
    public ref class XAudio2SoundPlayer sealed
    {
    public:
        XAudio2SoundPlayer(uint32 sampleRate);
        virtual ~XAudio2SoundPlayer();

        void Initialize();

        bool   PlaySound(size_t index);
        bool   StopSound(size_t index);
        bool   IsSoundPlaying(size_t index);
        size_t GetSoundCount();

        void Suspend();
        void Resume();

    private:
        interface IXAudio2*                     m_audioEngine;
        interface IXAudio2MasteringVoice*       m_masteringVoice;
        std::vector<std::shared_ptr<ImplData>>  m_soundList;
    };
}

棣栧厛錛屾?zhèn)ㄥ繀椤绘敞鎰従c誨0鏄庝腑 public銆乺ef 鍜?sealed 絳夊叧閿瓧鐨勪嬌鐢ㄣ傚浜庨氳繃 JavaScript 鎴?C# 絳夊叾浠栬璦鍦?Metro 椋庢牸搴旂敤涓疄渚嬪寲鐨勭被鏉ヨ錛岃綾誨繀欏誨0鏄庝負 public ref class sealed銆?/p>

綾葷殑鍏叡鍔熻兘錛堟柟娉曘佸睘鎬х瓑錛変粎闄愪簬 C++ 鍐呯疆鐨勭被鍨嬫垨 Windows 榪愯鏃剁被鍨嬨傝繖浜涙槸鍙湪 Windows 榪愯鏃剁粍浠朵腑璺ㄨ秺璇█鐣岄檺鐨勫敮涓綾誨瀷銆備絾璇濊櫧濡傛錛屾?zhèn)ㄤ粛鐒跺彲浠畣甯歌鐨?C++ 搴擄紙鍗蟲爣鍑嗘ā鏉垮簱闆嗗悎錛夌敤浜庢?zhèn)ㄧ殑绫讳腑鐨勪笓鐢ㄦ暟鎹垚鍛樺Q屽鍦ㄨ浠g爜鏂腑鎵紺恒傝繖浜涗笓鐢ㄦ暟鎹垚鍛樻棤闇閬典粠涓庤法瓚婅璦鐣岄檺鏈夊叧鐨勮鍒欍傚鏋滄?zhèn)ㄤ娇鐢ㄤ笉鏀寔鐨勬瀯閫狅紝鍒?Visual Studio 緙栬瘧鍣ㄥ皢鍙戝嚭閿欒娑堟伅騫舵彁渚涚浉搴旂殑鎸囧銆?/p>

 

瀹炵幇鍦ㄦ垜浠殑 Windows 榪愯鏃剁粍浠朵腑鍏紑鐨勭被

鐜板湪錛屾垜浠凡瀹氫箟浜嗙被鐨勫熀鏈帴鍙o紝鎺ヤ笅鏉ヨ鎴戜滑鏉ョ湅鐪嬩竴浜涘疄鐜版柟娉曪細

XAudioWrapper.cpp

XAudio2SoundPlayer::XAudio2SoundPlayer(uint32 sampleRate) :
m_soundList()
{
// Create the XAudio2 engine
UINT32 flags = 0;

XAudio2Create(&m_audioEngine, flags);

// Create the mastering voice
m_audioEngine->CreateMasteringVoice(
&m_masteringVoice,
XAUDIO2_DEFAULT_CHANNELS,
sampleRate
);
}

void XAudio2SoundPlayer::Resume()
{
m_audioEngine->StartEngine();
}

bool XAudio2SoundPlayer::PlaySound(size_t index)
{
//
// Setup buffer
//
XAUDIO2_BUFFER playBuffer = { 0 };
std::shared_ptr<ImplData> soundData = m_soundList[index];
playBuffer.AudioBytes = soundData->playData->Length;
playBuffer.pAudioData = soundData->playData->Data;
playBuffer.Flags = XAUDIO2_END_OF_STREAM;

HRESULT hr = soundData->sourceVoice->Stop();
if (SUCCEEDED(hr))
{
hr = soundData->sourceVoice->FlushSourceBuffers();
}

//
// Submit the sound buffer and (re)start (ignore any 'stop' failures)
//
hr = soundData->sourceVoice->SubmitSourceBuffer(&playBuffer);
if (SUCCEEDED(hr))
{
hr = soundData->sourceVoice->Start(0, XAUDIO2_COMMIT_NOW);
}

return SUCCEEDED(hr);
}

鍦ㄨ浠g爜孌典腑錛屾垜浠嬌鐢ㄥ彲鐢ㄤ簬 Metro 椋庢牸搴旂敤寮鍙戠殑 XAudio2 COM API 鏉ヨ繛鎺ユ垜浠殑闊抽寮曟搸銆佹挱鏀懼0闊沖拰鎭㈠寮曟搸銆傚彟澶栵紝鎴戜滑榪樺彲浠ヤ嬌鐢?C++ 鏋勯犲拰闄?Windows 榪愯鏃剁被鍨嬩互澶栫殑鍏朵粬綾誨瀷鏉ュ疄鐜板繀瑕佺殑鍔熻兘銆?/p>

娣誨姞鍜屼嬌鐢?Windows 榪愯鏃剁粍浠?/strong>

鍦ㄥ畾涔夊拰瀹炵幇鍩烘湰綾諱箣鍚庯紝鎴戜滑浣跨敤 Visual Studio 鏉ュ皢 XAudioWrapper Windows 榪愯鏃剁粍浠朵粠鎴戜滑鐨?C# 欏圭洰娣誨姞鍒?C++ 欏圭洰錛?/p>

浣跨敤 Visual Studio 鏉ュ皢 XAudioWrapper Windows 榪愯鏃剁粍浠剁殑寮曠敤娣誨姞鍒版垜浠殑闊充箰搴旂敤

鍥?3錛氬皢 XAudioWrapper Windows 榪愯鏃剁粍浠舵坊鍔犲埌鎴戜滑鐨勯煶涔愬簲鐢?/p>

鍥犳錛屾垜浠粠 C++ 欏圭洰鍏紑鐨勭被鍙敤浜庢垜浠殑 C# 欏圭洰錛?/p>

MainPage.cs

using XAudioWrapper;

namespace BasicSoundApp
{
public sealed partial class MainPage : Page
{
XAudio2SoundPlayer _audioPlayer = new XAudio2SoundPlayer(48000);
public MainPage()
{
this.InitializeComponent();
}

protected override void OnNavigatedTo(NavigationEventArgs e)
{
_audioPlayer.Initialize();
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{
_audioPlayer.PlaySound(0);
}
}
}

濡傚湪璇ヤ唬鐮佹涓墍紺猴紝鎴戜滑鍙互鍍忎嬌鐢ㄥ父瑙?.NET 緇勪歡閭f牱涓?C# 涓殑 XAudio 灝佽紼嬪簭榪涜浜や簰銆傛垜浠皢寮曠敤鍏跺懡鍚嶇┖闂淬佷婦渚嬭鏄庣粍浠跺茍寮濮嬭皟鐢ㄥ叾鍏紑鐨勫悇縐嶆柟娉曘傛墍鏈夎繖涓鍒囦笉闇瑕佷換浣?DllImport 鏉ヨ皟鍏ユ湰鏈轟唬鐮侊紒

搴旂敤鍦烘櫙 2錛氫嬌鐢ㄥ唴緗殑 API 鍦ㄦ?zhèn)ㄧ殑搴旂敤涓墦寮 zip 鏂囦歡

鍋囪鎴戜滑浣跨敤 HTML 鏉ユ瀯寤烘枃浠舵煡鐪嬪櫒搴旂敤錛屽茍甯屾湜娣誨姞鍔熻兘鏉ュ厑璁歌搴旂敤鐨勭敤鎴烽夊彇 zip 鏂囦歡銆傛垜浠笇鏈涘皢 Windows 涓凡鍐呯疆騫跺湪 .NET 騫沖彴涓叕寮鐨?API 鐢ㄤ簬澶勭悊 zip 鏂囦歡銆?/p>

灝?Windows 榪愯鏃剁粍浠舵坊鍔犲埌鎴戜滑鐨勮В鍐蟲柟妗?/p>

璇ユ楠や笌鎴戜滑鍦ㄩ煶涔愬簲鐢ㄤ腑鎵鎻忚堪鐨勬楠ゅ畬鍏ㄧ浉鍚岋紝鐜板湪鎴戜滑灝嗛夊彇 C# Windows 榪愯鏃剁粍浠舵潵鍖呰 zip 澶勭悊鍔熻兘錛?/p>

浣跨敤 Visual Studio 鏉ュ皢涓涓叏鏂扮殑 C# Windows 榪愯鏃剁粍浠舵坊鍔犲埌鎴戜滑鐨勬枃浠舵煡鐪嬪櫒搴旂敤
鍥?4錛氭坊鍔犱竴涓叏鏂扮殑 C# Windows 榪愯鏃剁粍浠?nbsp;

Visual Studio 涓烘垜浠垱寤轟簡涓涓?C# 欏圭洰錛岀敤浜庡叕寮 API錛岃?API 鐨勫疄鐜板拰 Windows 榪愯鏃跺厓鏁版嵁閮藉皢鎵撳寘鍒?.winmd 鏂囦歡錛屽茍涓斿彲鐢ㄤ簬鎴戜滑鐨?Web 欏圭洰銆?/p>

瀹炵幇鍦ㄦ垜浠殑 Windows 榪愯鏃剁粍浠朵腑鍏紑鐨勭被

鎴戜滑浣跨敤 C# 鏉ユ瀯寤哄皢鍚戞垜浠殑 Web 欏圭洰鍏紑鐨?API錛屼絾鎮(zhèn)ㄥ悓鏍峰彲浠ヤ嬌鐢?Visual Basic銆傛垜浠鍏堝畾涔変竴涓畝鍗曠殑 C# 綾繪潵灝佽 zip 鍔熻兘錛?/p>

ZipWrapper.cs

using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.Storage;

public sealed class ZipWrapper
{
public static IAsyncOperationWithProgress<IList<string>, double> EnumerateZipFileAsync(StorageFile file)
{
return AsyncInfo.Run(async delegate(
System.Threading.CancellationToken cancellationToken, IProgress<double> progress)
{
IList<string> fileList = new List<string>();
progress.Report(0);

using (var stream = await file.OpenStreamForReadAsync())
{
using (var archive = new ZipArchive(stream))
{
for (int i = 0; i < archive.Entries.Count; i++)
{
// add code for processing/analysis on the file
// content here

// add to our list and report progress
fileList.Add(archive.Entries[i].FullName);
double progressUpdate = ((i + 1) / ((double)archive.Entries.Count)) * 100; // percentage
progress.Report(progressUpdate);
}
}
}

progress.Report(100.0);
return fileList;
});
}
}

璇ョ被鏄叕鍏辯殑涓斿凡瀵嗗皝銆傜被浼間簬鏋勫緩 C++ Windows 榪愯鏃剁粍浠訛紝榪欏浜庡叾浠栬璦瀹炰緥鍖栫被鏉ヨ鏄繀闇鐨勩傝綾諱腑鍏紑鐨勯潤鎬佹柟娉曟販鍚堜嬌鐢?Windows 榪愯鏃剁被鍨嬶紙渚嬪錛孲torageFile錛夛紝騫朵笖鍦ㄦ柟娉曠鍚嶄腑浣滀負 .NET 綾誨瀷錛堜緥濡傦紝IList錛夈傛垜浠殑緇忛獙娉曞垯鏄嬌鐢?Windows 榪愯鏃剁被鍨嬫潵瀹氫箟鍚戝叾浠栬璦鍏紑鐨勫叕鍏卞瓧孌點佸弬鏁板拰榪斿洖綾誨瀷銆傚敖綆″姝わ紝鎮(zhèn)ㄤ粛鐒跺彲浠ュ師灝佷笉鍔ㄥ湴浣跨敤鏌愪簺 .NET 鍩烘湰綾誨瀷錛堝嵆 DateTimeOffset 鍜?Uri錛変互鍙婂熀鍏冿紙鍗?IList錛夈?/p>

鎮(zhèn)ㄨ繕浼氭敞鎰忓埌涓婅堪鏂規(guī)硶鍒╃敤浜嗗湪瀹氫箟鎮(zhèn)ㄧ殑 Windows 榪愯鏃剁粍浠舵椂鍙互錛堜笖搴旇錛変嬌鐢ㄧ殑鐢ㄤ簬寮傛鎬у拰榪涘害鏀寔鐨?Windows 榪愯鏃跺熀紜緇撴瀯銆傚氨璇ョ被涓殑 Windows 榪愯鏃剁粍浠舵垨浠諱綍涓撶敤鍔熻兘鐨勫疄鐜拌岃█錛屾?zhèn)q朵笉浠呴檺浜庝嬌鐢?Windows 榪愯鏃剁被鍨嬪拰 API錛涙?zhèn)ㄥ彲浠ヨ嚜鐢变娇鐢ㄤ恢M綍鍚?Metro 搴旂敤寮鍙戝叕寮鐨?.NET API 琛ㄩ潰錛屽浠g爜孌?ZipArchive API 涓墍紺恒?/p>

娣誨姞鍜屼嬌鐢?Windows 榪愯鏃剁粍浠?/strong>

鎴戜滑鐜板湪宸茬粡瀹炵幇浜?zip 宸ュ叿灝佽紼嬪簭錛屾垜浠皢浣跨敤 Visual Studio 鏉ユ坊鍔犳垜浠殑 JavaScript 欏圭洰涓 C# 欏圭洰鐨勫紩鐢細

浣跨敤 Visual Studio 娣誨姞鎴戜滑鐨勬枃浠舵煡鐪嬪櫒搴旂敤涓?ZipUtil Windows 榪愯鏃剁粍浠剁殑寮曠敤
鍥?5錛氬皢 ZipUtil Windows 榪愯鏃剁粍浠舵坊鍔犲埌鎴戜滑鐨勬枃浠舵煡鐪嬪櫒搴旂敤
 

鍥犳錛屾垜浠粠 C# 欏圭洰鍏紑鐨勭被灝嗗彲鐢ㄤ簬鎴戜滑鐨?Web 欏圭洰錛?/p>

program.js

function pickSinglePhoto() {

// Create the picker object for picking zip files
var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;
openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.picturesLibrary;
openPicker.fileTypeFilter.replaceAll([".zip"]);

// Open the picker for the user to pick a file
openPicker.pickSingleFileAsync().then(function (file) {
if (file) {
ZipUtil.ZipWrapper.enumerateZipFileAsync(file).then(
function (fileList) {
for (var i = 0; i < fileList.length; i++)
document.getElementById('output').innerHTML += " " + fileList[i];
},
function (prog) {
document.getElementById('zipProgress').value = prog;
}
);
} else {
document.getElementById('output').innerHTML = "an error occurred";
}
});
};

姝e鎮(zhèn)ㄦ墍鐪嬪埌鐨勶紝鎴戜滑鍙互涓?JavaScript 涓垜浠殑 zip 宸ュ叿灝佽紼嬪簭榪涜浜や簰錛屽鍚屽畠鏄竴涓父瑙勭殑 JavaScript 瀵硅薄銆傛垜浠彲浠ヨ皟鍏?Windows 榪愯鏃剁粍浠朵腑鍏紑鐨勯潤鎬佹柟娉曪紝鑰屾垜浠嬌鐢?JavaScript 鐨勫紓姝ヨ璦鏋勯狅紝濡?.then()錛屼篃鍙互瀹屾垚姝ゆ搷浣溿?/p>

涓鑸寚瀵?/strong>

騫墮潪鎮(zhèn)ㄤ負 Metro 椋庢牸搴旂敤緙栧啓鐨勬墍鏈?API 閮藉簲鍏紑涓虹涓夋柟 Windows 榪愯鏃剁粍浠躲傞氬父鎯呭喌涓嬶紝褰撴?zhèn)ㄥ湪涓嶅悓鐨劸~栫▼璇█涔嬮棿榪涜閫氫俊鏃墮渶瑕佷嬌鐢?Windows 榪愯鏃剁粍浠剁被鍨嬶紝騫朵嬌鐢ㄨ璦涓唴緗殑綾誨瀷鍜屾瀯閫犳潵瀹炵幇鏃犳硶閫氳繃 Windows 榪愯鏃剁粍浠跺叏灞鍏紑鐨勫姛鑳姐傚彟澶栵紝璺ㄨ秺璇█鐣岄檺榪樻秹鍙婂悇縐嶈璦鐗瑰畾鐨勫姛鑳藉拰瑙勫垯錛屽綋鏋勫緩 Windows 榪愯鏃剁粍浠舵椂錛屾?zhèn)ㄥ繀椤粸畣鍏毒U沖叆鑰冭檻鑼冨洿銆傚畠浠叿浣撳寘鎷唬鐞嗗拰浜嬩歡銆佸紓姝ユ搷浣溿佹柟娉曢噸杞藉拰澶勭悊鐗瑰畾鐨勬暟鎹被鍨嬶紙渚嬪錛岄泦鍚堛佸紓甯稿鐞嗗拰璋冭瘯鎶宸э級銆傛?zhèn)ㄥ彲浠ラ氳繃璁塊棶鏋勫緩 Windows 榪愯鏃剁粍浠朵腑闈㈠悜鎮(zhèn)ㄧ殑寮鍙戣璦鐨勯儴鍒嗭紝鏉ユ繁鍏ョ爺絀惰繖浜涗富棰樸?/p>

鎬葷粨

灝?Windows 榪愯鏃剁粍浠惰岃█錛屾?zhèn)ㄧ幇鍦ㄥ彲浠ユ贩鍚堜娇鐢ň~栧啓璇█鍜?API 鎶鏈潵鏋勫緩鎮(zhèn)ㄨ鎯崇殑搴旂敤銆傛涓嶈縼灝辯殑鐞嗗康璐┛浜?Windows 8銆傚嵆浣挎槸鍦ㄥ紑鍙戦樁孌墊儏鍐典緷鐒跺姝わ紝鎴戜滑鍏佽鎮(zhèn)ㄦ販鍚堜嬌鐢ㄥ拰鍖歸厤閫傜敤浜庢?zhèn)ㄧ殑鏂规鐨勬渶浣崇紪紼嬭璦銆傛垜甯屾湜榪欏皢浣挎?zhèn)ㄨ兘澶熺敤鏇村鐨勬棄櫁存潵鑰冭檻鍒涙柊錛岃屼笉鏄湪瀛︿範(fàn)鍏ㄦ柊鐨勭紪紼嬭璦鏂歸潰嫻垂澶ч噺鐨勬椂闂淬?/p>

甯屾湜鎮(zhèn)ㄨ兘鍏呭垎浜彈鏋勫緩搴旂敤涓烘?zhèn)ㄥ甫鏉ョ殑蹇箰锛?/p>

-- Windows 欏圭洰緇忕悊 Ines Khelifi




jackdong 2012-10-29 21:16 鍙戣〃璇勮
]]>
WinRT錛歐in32鐨勯潰鍚戝璞℃浛浠e搧http://m.shnenglu.com/jackdongy/archive/2012/10/29/194017.htmljackdongjackdongMon, 29 Oct 2012 07:21:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194017.htmlhttp://m.shnenglu.com/jackdongy/comments/194017.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/29/194017.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/194017.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/194017.html
    WinRT 涓嶆槸鍙︿竴涓娊璞″眰錛涘畠?yōu)鍍?Win32 API 涓鏍鳳紝鐩存帴椹葷暀鍦ㄥ唴鏍鎬箣涓娿傝嚜浠?1993 騫?Win32 浼撮殢 Windows NT 琚紩鍏ヤ互鏉ワ紝榪欐爣蹇楃潃瀵逛簬 Windows 鏍稿績鐨勯嬈¢噸澶х獊鐮淬俉inRT 涓?Win32 鎴劧涓嶅悓錛屽畠浠h〃浜嗘柊鐨勮涔夊搴旂敤紼嬪簭鎵ц鐜銆?br /> 

銆銆涓嶅儚 Win32 鏄敤C璇█鎬濇兂璁捐鐨勶紝鑰?WinRT API 鏄敤 C++ 緙栧啓鐨勶紝騫朵笖浠庝竴寮濮嬬殑璁捐灝辨槸闈㈠悜瀵硅薄鐨勩備竴鑷存с佹槗鐢ㄦс佷互鍙婃ц兘閮芥槸鏂扮殑榪愯鏃?API 鐨勯噸瑕佹柟闈€俉inRT API 涓殑姣忎釜瀵硅薄閮芥敮鎸佸弽灝勶紝浠ヤ究鐢氳嚦榪炶濡?JavaScript 絳夊姩鎬佽璦閮藉彲鏈夋晥鍦頒嬌鐢ㄥ畠浠傞殢涔嬭屾潵榪樻湁緇熶竴瀵硅薄妯″瀷錛岃繖瀵逛簬鍩轟簬搴撶殑 C++ 鑰岃█鏄釜紼緗曠墿銆?/p>

銆銆闄勬敞錛歐in32 API 騫舵湭琚Щ闄わ紝鑰屼笖閭d簺浣跨敤浼犵粺搴旂敤紼嬪簭鎵ц鐜鐨勮緝鏃╃殑搴旂敤紼嬪簭灝嗙戶緇寜棰勬湡鏂瑰紡宸ヤ綔銆?br />

銆銆C++寮鍙?/strong>

銆銆鍦?C++ 涓紪鍐欑敤鎴風(fēng)晫闈㈠皢棣栭?XAML銆傛墍鏈変笌 XAML 涓璧蜂嬌鐢ㄧ殑搴撻兘宸茶縐繪鍒癈++錛屽茍涓旇緙栬瘧涓烘湰鍦?x86 鐗堟湰銆備嬌鐢?XAML 鍜?C++ 緙栧啓鐨?Metro 椋庢牸搴旂敤紼嬪簭騫朵笉榪愯鍦?.NET 涔嬩笂錛屽畠浠氨鍍忓叾浠栦換浣?Visual C++ 搴旂敤紼嬪簭涓鏍鳳紝琚洿鎺ョ紪璇戜負 x86 鐗堟湰銆?/p>

銆銆璋冪敤 UI 鎺т歡鐨勬柟娉曞氨鍍忓湪 C++ 涓皟鐢ㄤ換浣曞叾浠栧璞$殑鏂規(guī)硶涓鏍楓傚湪鏈哄櫒鐮佺駭鍒笂錛屾煇涓寚浠ゅ皢 this 鎸囬拡鎺ㄩ佸埌鍫嗘爤涓婏紝鐒跺悗閫氳繃铏氬嚱鏁拌〃錛坴-table錛夎皟鐢ㄧ浉搴斿嚱鏁般傝繖浣垮緱鍗充嬌鍦ㄤ綆鍔熻楄澶囦笂涔熻兘杈懼埌鏈浼樼殑鎬ц兘銆?/p>

銆銆鏀寔涓浜涚幇浠g殑 C++ 搴旂敤紼嬪簭鎵鐢ㄧ殑搴擄紝渚嬪 Boost銆?br />

銆銆閲嶅彔紿楀彛涓嶅瀛樺湪

銆銆瀵硅瘽妗嗘槸鏉ヨ嚜涓婁竴鐗?Windows 鐨勬牳蹇冩蹇碉紝鑰屽湪 WinRT 涓畠?yōu)畣涓嶅瀛樺湪銆傚浜庡井杞岃█錛屾ц兘鎴愭湰鍜屽彲鐢ㄦч棶棰樺凡涓嶅啀鏄悊鎵褰撶劧鐨勩傚笇鏈涗嬌鐢ㄨ繖縐嶆ā寮忕殑搴旂敤紼嬪簭灝嗚寮鍙戝叾浠栫殑鏂瑰紡鏉ヤ紶閫掍俊鎭紝渚嬪娑堟伅妗嗙殑鏂瑰紡銆?/p>

銆銆鍙︿竴騫舵湭綰沖叆 WinRT 鐨勫簱鏄?GDI銆傚鏋滄煇涓簲鐢ㄧ▼搴忚浣跨敤 Metro 椋庢牸鐣岄潰錛岄偅涔堝畠闇瑕佹寜鑷笂鑰屼笅鐨勬柟寮忔潵鍋氾紝灝?Metro 椋庢牸涓庣粡鍏哥敤鎴風(fēng)晫闈㈢浉娣峰悎鐨勬儏鍐墊槸涓嶅彲鑳藉嚭鐜扮殑銆?br />

銆銆PlayTo 濂戠害

銆銆鍙︿竴琚叕寮鐨勫綰︽槸 PlayTo錛堢敱……鍙戞尌錛夈傝繖浣垮緱搴旂敤紼嬪簭鍙彂閫佸闊抽鍙婅棰戠瓑濯掍綋鏂囦歡鍒版煇涓?charm[1]銆傜劧鍚庨偅涓?charm 灝嗗厑璁哥敤鎴烽夋嫨鏌愪釜浠栦滑鎯崇敤鐨勫簲鐢ㄧ▼搴忔潵鏌ョ湅璇ユ枃浠躲傛嵁鎺ㄦ祴錛屽獟浣撴枃浠朵笉浠呴檺浜庣墿鐞嗘枃浠訛紝鑰屾槸浠諱綍鍙〃紺轟負鏁版嵁嫻佺殑濯掍綋褰㈠紡銆?br />

銆銆C#/VB錛氬鉤鍙拌皟鐢紙P/Invoke錛変箣緇堢粨

銆銆浠?.NET 涓皟鐢ㄦ湰鍦板嚱鏁伴氬父娑夊強寤虹珛緇撴瀯鍜屾搷綰墊寚閽堛傝屽湪 WinRT 鐜涓嬶紝鎵鏈夌殑 API 琚叕寮涓鴻澶氬彲閫氳繃 C# 鍙?VB 鐩存帴浣跨敤鐨勫璞°傝繖鎶?.NET 寮鍙戣呯疆浜庝笌 C++ 寮鍙戣呭鉤絳夌殑灞傞潰涓娿?/p>

銆銆搴旂敤紼嬪簭鐨勫搷搴旈熷害瀵逛簬寰蔣鑰岃█鏄潪甯擱噸瑕佺殑銆傛墍鏈夎楁椂瓚呰繃 50 姣鐨勬搷浣滅郴緇熺駭鍒殑 API 璋冪敤灝嗚鍏紑涓哄紓姝ユ搷浣滐紝姝f槸涓轟簡鍚戝紑鍙戣呬紶閫掕繖縐嶄環(huán)鍊艱銆?br />

銆銆JavaScript

銆銆瀵逛簬 Windows 8 鑰岃█錛岀鍥涘ぇ璇█灝辨槸 JavaScript銆傚敖綆″畠涓嶄嬌鐢?XAML錛屼絾瀹冨氨鍍忔湰鍦板強 .NET 搴旂敤紼嬪簭涓鏍鳳紝鎷ユ湁瀵瑰簳灞?WinRT API 鐨勭洿鎺ヨ闂潈銆傝繖涓嶄粎鏄釜鍍?PhoneGap 涓鏍風(fēng)殑瀹瑰櫒錛孞avaScript 寮鍙戣呰繕鍙幏寰椾笌鍏朵粬寮鍙戣呮墍浣跨敤鐨勫悓鏍蜂赴瀵岀殑 API銆?/p>

銆銆鐢變簬鏄?JavaScript錛屽洜姝ゆ墍閫夋嫨鐨?UI 宸ュ叿鍖呮槸 HTML 鍜?CSS 鑰岄潪 XAML銆侷E 10 鍙?Metro 椋庢牸鐨?JavaScript 搴旂敤紼嬪簭浣跨敤鐨勬槸鍚屼竴娓叉煋寮曟搸錛屽敖綆¢偅浜涘簲鐢ㄧ▼搴忓疄闄呭茍涓嶈繍琛屽湪嫻忚鍣ㄤ腑銆侸avaScript 搴旂敤紼嬪簭鐪嬭搗鏉ュ氨鍍忎換浣曞叾浠?Metro 椋庢牸搴旂敤紼嬪簭涓鏍楓?/p>

銆銆JavaScript 涓殑鐢ㄦ埛鎺т歡鍑犱箮涓?C++ 鍙?.NET 涓殑鎺т歡涓嶇浉涓婁笅銆傛湁浜涙帶浠跺浜?HTML 娓叉煋寮曟搸鑰岃█鏄浐鏈夌殑錛岃屽彟澶栦竴浜涙帶浠跺垯鏄敤 JavaScript 緙栧啓鐨勩傝繖浜涘熀浜?JavaScript 鐨勬帶浠墮兘鏄熀浜?div 鐨勶紝闈炲父鍍忛偅浜涗嬌鐢?jQuery 鍒涘緩鐨勬帶浠躲?br />

銆銆搴旂敤紼嬪簭瀹瑰櫒鍜屽簲鐢ㄧ▼搴忔潈闄?/strong>

銆銆Metro 椋庢牸搴旂敤紼嬪簭榪愯鍦ㄨ縐頒負“搴旂敤紼嬪簭瀹瑰櫒”錛坅pp container錛夌殑鐜涓傝繖浼間箮鍙栦唬浜嗙敱鍩轟簬 Win32 搴旂敤紼嬪簭鎵浣跨敤鐨勭獥浣撶幆澧冦?/p>

銆銆澶у鏁?API 璋冪敤琚洿鎺ュ彂閫佺粰搴曞眰鍐呮牳銆傜劧鑰岋紝鏈変簺璋冪敤灝嗚閫氳繃緋葷粺浠g悊錛坰ystem broker錛夎礬鐢便傜郴緇熶唬鐞嗙‘淇濆簲鐢ㄧ▼搴忓彧鑳借闂偅浜涚粡鐢ㄦ埛宸叉壒鍑嗙殑鍔熻兘銆備緥濡傦紝褰撴煇涓簲鐢ㄧ▼搴忛嬈″皾璇曡闂憚鍍忓ご鏃訛紝鏈嶅姟浠g悊錛坰ervice broker錛夊皢鎻愮ず鐢ㄦ埛浠ヨ幏鍙栦粬浠殑鎵瑰噯銆傚簲鐢ㄧ▼搴忓繀欏誨寘鎷竴浠芥竻鍗曪紝鍏朵腑娉ㄦ槑璇ュ簲鐢ㄧ▼搴忓彲鑳介渶瑕佺殑鎵鏈夐檺鍒舵湇鍔°傝繖縐嶆ā寮忓浜庣Щ鍔ㄨ澶囧紑鍙戣呰岃█灝嗘槸闈炲父鐔熸?zhèn)夌殑銆?/p>

銆銆鎵鏈?Metro 椋庢牸搴旂敤紼嬪簭閮戒細榪愯鍦?WinRT 鐨勫簲鐢ㄧ▼搴忓鍣ㄤ腑錛岃屼笖浼氬彈鍒扮郴緇熶唬鐞嗙殑鐩戞帶錛岀敋鑷寵繛閭d簺鐢?C++ 緙栧啓鐨勫簲鐢ㄧ▼搴忎篃涓嶄緥澶栥傝鎬濇兂鏄負浜嗛檺鍒跺簲鐢ㄧ▼搴忕牬鍧忕郴緇熺殑鑳藉姏銆傝櫧鐒朵篃璁稿茍涓嶆槸涓嶅彲鑳界殑錛屼絾鏄湪 WinRT 涓嬪垱寤烘伓鎰忚蔣浠朵笌鍦?Win32 涓浉姣斿皢浼氶毦寰楀銆?br />

銆銆鎵鏈?Metro 椋庢牸搴旂敤紼嬪簭蹇呴』榪涜鏁板瓧絳懼悕

銆銆涓嶅厑璁稿尶鍚嶅簲鐢ㄧ▼搴忋傚簲鐢ㄧ▼搴忎負浜嗘祴璇曞彲榪涜鑷鍚嶏紝浣嗘槸褰撳畠浠嚭鐜板湪搴旂敤鍟嗗簵閲屾椂錛屽畠浠氨蹇呴』浣跨敤鐪熷疄璇佷功榪涜絳懼悕銆?/p>

銆銆璇戞敞

銆銆[1] charm錛屽井杞凡灝?#8220;CHARM”娉ㄥ唽涓鴻綆楁満銆佽蔣浠朵駭鍝併佺數(shù)姘斿拰縐戝浜у搧綾誨晢鏍囥傚井杞皢 CHARM 鎻忚堪涓鴻綆楁満紼嬪簭銆佸浘褰㈢敤鎴風(fēng)晫闈㈣蔣浠跺拰鎿嶄綔緋葷粺紼嬪簭銆傚湪瑙︽懜鐗?Windows 8 涓紝charms 鍦ㄥ睆騫曞彸渚э紱鍦ㄤ紶緇熺増錛堜嬌鐢ㄩ紶鏍囧拰閿洏錛塛indows 8 涓紝charms 鍑虹幇鍦ㄥ睆騫曞乏渚с俢harms 鍖呮嫭錛歋earch錛堟悳绱級銆丼hare錛堝垎浜級銆丼tart錛堝紑濮嬶級銆丏evices錛堣澶囷級銆丼ettings錛堣緗級銆傝瑙佸井杞敵璇?Windows 8 鍔熻兘 charm 娉ㄥ唽鍟嗘爣錛堝浘錛夈?br />

銆銆浣滆咃細Jonathan Allen 璇戣咃細楂樼繉緲?/p>

銆銆鏌ョ湅鑻辨枃鍘熸枃錛?/strong>WinRT: An Object Orientated Replacement for Win32 

銆銆鐩稿叧鍗氬鏂囩珷錛?/strong>Windows Runtime(WinRT) 鎻


http://dotnet.cnblogs.com/page/115787/

jackdong 2012-10-29 15:21 鍙戣〃璇勮
]]>
Windows RT 搴旂敤紼嬪簭寮鍙戜粙緇嶅煿璁殑璁蹭箟 http://m.shnenglu.com/jackdongy/archive/2012/10/16/193391.htmljackdongjackdongTue, 16 Oct 2012 15:56:00 GMThttp://m.shnenglu.com/jackdongy/archive/2012/10/16/193391.htmlhttp://m.shnenglu.com/jackdongy/comments/193391.htmlhttp://m.shnenglu.com/jackdongy/archive/2012/10/16/193391.html#Feedback0http://m.shnenglu.com/jackdongy/comments/commentRss/193391.htmlhttp://m.shnenglu.com/jackdongy/services/trackbacks/193391.htmlhttp://www.cnblogs.com/lxconan/archive/2012/09/09/2677957.html

鏈榪戜粠鏋舵瀯鐨勮搴﹀仛浜嗕竴涓?Windows 8 涓?Metro Style 搴旂敤紼嬪簭寮鍙戜粙緇嶇殑璁插駭銆備互涓嬫槸璁茬ǹ銆?/p>

濡傛湁闂?gòu)脾杩庢寚姝c?/p>

涓嬭澆鍦板潃錛?/p>

1          姒傝堪

榪欑瘒鐨勬爣棰樺彨鍋歐indows RT Introduction鑰岄潪Windows 8 Introduction鏄兂寮鴻皟姝ゆ浠嬬粛鏄粠寮鍙戜漢鍛樼殑瑙掑害鑰屼笉鏄櫘閫氱敤鎴風(fēng)殑瑙掑害鍑哄彂鐨勩傚悓鏃訛紝鎴戜滑鍏蟲敞鐨勬槸Metro Style搴旂敤鑰屼笉鏄紶緇熺殑Win32搴旂敤紼嬪簭鐨勫紑鍙戙?/p>

瀹為檯涓婏紝浣跨敤C#鎴栬匟TML + Javascript涔﹀啓涓涓狧ello world搴旂敤鐨勪唬鐮佷緥瀛愬凡緇忓湪緗戜笂娉涙互浜嗐備絾鏄粎鏈変竴涓狧ello world騫朵笉鑳藉璇翠綘鎺屾彙浜哤in RT鐨勫紑鍙戙備粠Pro鐨勮搴︽潵璇存垜浠簲璇ュ紕娓呮鏁翠歡浜嬫儏鐨勭粏鑺傘傞偅涔堥鍏堝氨搴斿綋鏄粬鐨勬灦鏋勩傝繖鏍峰啓璧風(fēng)▼搴忔潵鎵嶈兘蹇冨畾銆?/p>

2          Windows 8 Metro涓嶥esktop妯″紡

2.1         涓ょ妯″紡

Windows 8鐨勫簲鐢ㄧ▼搴忔樉紺烘ā寮忕洰鍓嶆湁涓ょ錛屽畾涔夊湪METRO_MONITOR_MODE涓細鍗充紶緇熺殑妗岄潰妯″紡錛圡MM_Desktop錛変互鍙奙etro妯″紡錛圡MM_Metro錛夈傚鏋滀綘鏄疻indows Phone鐢ㄦ埛鐨勮瘽鍙兘灝變細瀵筂etro姣旇緝鐔熸?zhèn)夈備簨瀹炰笂錛屽井杞湪2009騫村惎鍔╓indows 8鐨勭爺鍙戝伐浣滄椂鐩爣鏄垱閫犱竴涓畬鍏ㄤ笉鍚屼互寰鐨勬搷浣滅郴緇燂紝瀹屽叏涓嶄互涔嬪墠鐨勬搷浣滅郴緇熶負钃濇湰銆傝屽悗鍙戠幇Desktop搴旂敤鏄笉鍙垨緙虹殑閮ㄥ垎鑰屽皢涓や釜閮ㄥ垎榪涜鍚堝茍銆備竴寮濮嬬敤鍙兘浼氭湁浜涘埆鎵紝浣嗘槸鎴戜及璁″紑鍙戜漢鍛樺崐澶╀箣鍐呭氨鑳藉鐔熺粌浣跨敤榪欎釜緋葷粺浜嗐?/p>

2.2         Metro鍜孌esktop鐨勪竴浜涗笉鍚?/h2>

鏃㈢劧鏈変袱縐嶆ā寮忛偅涔堟垜浠嚜鐒跺氨浼氬叧娉ㄤ粬浠殑涓嶅悓鐐廣傝繖涓棶棰樺簲璇ヤ粠鏋舵瀯鍥句笂鍋氫竴涓嬭鏄庝絾鏄垜浠彲浠ュ厛鏈変竴浜涚洿瑙傜殑璁よ瘑銆?/p>

2.2.1          Message Loop

娑堟伅澶勭悊鐨勭紪紼嬫槸浼犵粺Desktop搴旂敤紼嬪簭鐨勯噸瑕侀儴鍒嗐備綘闇瑕佷功鍐欑淮鎶essage Loop鐨勪唬鐮併備緥濡傦細鍦╓inMain璋冪敤錛堟垨鑰呭叾瀛愪緥紼嬩腑錛変綘闇瑕佷功鍐欑被浼?/p>

 

while (::GetMessage(&message, NULL, 0, 0)) {

    ::TranslateMessage(&message);

    ::DispatchMessage(&message);

}

 

鑰屽湪Window鍒涘緩涔嬪墠鍊欎綘涓瀹氭寚瀹氫簡

 

WNDCLASS wndClass;

// ...

wndClass.lpfnWndProc = WndProc;

 

榪欐牱浣犲氨鍙互鍦╓ndProc鍑芥暟涓喅瀹氱壒瀹歮essage鐨勬祦鍚戜簡銆傚浜庣粯鍥炬潵璇達紝浣犱竴瀹氭槸鎺ュ彈浜哤M_PAINT娑堟伅錛岀劧鍚庢墽琛屼簡鍖哄煙閲嶇粯銆?/p>

浣嗗湪Metro App涓繖浜涢兘宸茬粡闅愯棌浜嗭紝鑰屼笖娑堟伅鐨勭粏鑺備篃鍙兘鍙戠敓浜嗗彉鍖栥侻etro App涓綘鐪嬩笉鍒版秷鎭驚鐜備竴鍒囧叧浜庣晫闈㈡秷鎭殑鍒嗗彂閮介殣钘忓湪浜咰oreDispatcher涓傚洜姝ゅ鏋滀綘鐢⊿py++鍘昏瘯鎺etro App鐨勬秷鎭驚鐜偅涔堜綘浠涔堥兘鎶撲笉鍒般?/p>

2.2.2          Display

鍦ㄤ紶緇熺殑Desktop搴旂敤紼嬪簭涓紝緇樺浘鍙兘閫氳繃GDI錛孏DI+錛孌irectDraw錛孌irectX榪涜銆傚悓鏍烽氳繃鎹曡幏WM_PAINT娑堟伅鎴栬呭綋緋葷粺澶勪簬IDLE鐨勬椂鍊欒繘琛岀粯鍥撅紙瀵逛簬娓告垙緙栫▼鏉ヨ錛夈?/p>

鑰孧etro App涓嶄細鍐嶆敮鎸丟DI鍜孏DI+錛屽湪Metro App涓粯鍥懼彧鑳介氳繃DirectX鏉ヨ繘琛屻傜‘鍒囩殑璇存槸Direct3D鍜屾柊鍏竷鐨凞irect2D銆丏irect Write API銆傚洜姝etro搴旂敤鐨勬墍鏈夌粯鍥鵑兘鏄笇鏈涙槸紜歡鍔犻熺殑銆傝繖縐嶇粯鍥炬洿楂樻晥錛岃В鏀綜PU錛岃屼笖涓鑸笉闇瑕佸鐞嗗鏉傜殑Dirty Region Repaint銆?/p>

2.2.3          Life Cycle

Metro App騫舵病鏈夊叧闂獥鍙h繖縐嶆寜閽傚叾鐢熷懡鍛ㄦ湡鏄敱緋葷粺鎵樼鐨勩傜郴緇熶細鍐沖畾浠呬粎鏄寕璧峰簲鐢ㄦ墽琛岃繕鏄渶瑕佸畬鍏ㄩ攢姣佸簲鐢ㄨ繘紼嬨傝繖鍜屼竴鑸剰涔変笂鐨凞esktop搴旂敤紼嬪簭涓嶄竴鏍楓傦紙褰撶劧錛屼綘涔熷彲浠ヤ嬌鐢ˋlt+F4鏄劇ず鐨勭粨鏉烳etro App鐨勬墽琛岋級銆?/p>

2.2.4          Share & Communication

浼犵粺鐨勬闈㈠簲鐢ㄧ▼搴忔湁澶氱鎵嬫榪涜鍏叡緇勫緩鐨勫叕鐢ㄦ垨IPC銆備絾鏄湪Metro App涓紝闅旂鏄竴涓緢閲嶈鐨勬蹇碉紝搴旂敤鐨勫彲鎵ц閮ㄥ垎錛岃繍琛屽簱錛孖solated Storage閮芥槸鐙珛鐨勶紝涓嶈兘澶熷叡鐢ㄣ傚悓鏍鳳紝涓嶈兘澶熶嬌鐢ㄤ紶緇熺殑IPC鏈哄埗銆傚簲鐢ㄧ▼搴忕殑浜掑姩浠呬粎鍙互閫氳繃鍐呯疆鐨凜ontracts榪涜錛屽叧浜庤繖涓閮ㄥ垎鍐呭鍙互鏌ョ湅MSDN錛?/p>

http://msdn.microsoft.com/en-us/library/windows/apps/hh464906.aspx

2.2.5          Portability

浼犵粺鐨凞esktop搴旂敤紼嬪簭鐨勬敮鎸佸ぇ澶氫負x86/64鏋舵瀯鐨勫鐞嗗櫒銆傜敱浜嶮etro鐜鍙互瀹屾暣榪愯鍦ˋRM澶勭悊鍣ㄤ笂鏄竴涓噸瑕佺殑鐗規(guī)э紝鍥犳Metro App鍙互榪愯鍦ˋRM澶勭悊鍣ㄤ笂錛屽嵆鍚屾椂閮ㄧ講鍦≒C鍜岀Щ鍔ㄨ澶囦笂銆?/p>

2.2.6          OS Access

褰撶劧涓轟簡Portability鐨勮姹傦紝蹇呯劧瑕佹眰搴旂敤涓嶈兘澶熻秺榪嘩in RT鐨勬娊璞★紝鍥犳Metro鏄笉鑳藉儚Desktop App閭f牱璁塊棶鎵鏈夌殑Windows API鐨勩?/p>

3          浠嶹indows 8 API鐨勬灦鏋勫浘鐪媁indows RT

鎴戜滑瀵筗indows RT鐨勪粙緇嶉兘灝嗗洿緇曠潃榪欎釜鍥懼睍寮銆?/p>

鍦ㄨ繖涓浘涓紝鏈搴曞眰鐨勬槸NT鐨勫唴鏍革紱鍦ㄥ叾涓婃槸Windows瀛愮郴緇熴傚疄闄呬笂NT鑷沖皯鏈変笁涓瓙緋葷粺錛學(xué)indows瀛愮郴緇燂紝POSIX瀛愮郴緇燂紙Unix錛夊拰OS/2瀛愮郴緇熴侾OSIX瀛愮郴緇熷拰OS/2瀛愮郴緇熷疄闄呰繕鏄湪浣跨敤Windows瀛愮郴緇熴?鍦╓indows瀛愮郴緇熶笂鍒掑垎浜嗕笉鍚岀殑榪愯鏃訛紙姍欒壊錛夊拰紼嬪簭搴擄紙嫻呰摑鑹詫級錛屾渶涓婇潰鐨勭豢鑹叉槸鎴戜滑浣跨敤鐨勫悇縐嶅紑鍙戣璦銆?/p>

榪欎釜鏋舵瀯鍥懼疄闄呬笂璇存槑浜嗕竴鍒囥傚茍涓旀秷闄や簡寰堝璇В錛?/p>

錛?錛?nbsp;      絎竴涓瑙f槸INFOQ鎸囧嚭鐨刉indows RT鍜學(xué)in32鏄畬鍏ㄥ垎寮鐨勩傝繖婧愪簬寰蔣鍙戝竷鐨勪竴騫呴ケ鍙楁壒璇勭殑鏋舵瀯鍥撅紝鍦ㄩ偅寮犳灦鏋勫浘涓紝W(xué)indows RT鍜學(xué)indows瀛愮郴緇熺珶鐒舵槸騫舵帓鎺掑垪鐨勩傝繖鏄緢鑽掕艾鐨勶紝W(xué)indows RT瀹為檯涓婂熀浜嶹indows瀛愮郴緇熴傞鍏圵indows RT瀹屽叏鍩轟簬COM錛涘叾嬈indows RT鍒╃敤浜嗕竴閮ㄥ垎鐜版湁鐨刉in32 API錛涘叾浣欑殑閮ㄥ垎Windows RT鍒欑洿鎺ヨ闂甆T鍐呮牳銆?/p>

錛?錛?nbsp;      絎簩涓瑙f槸C++/CX銆侰++/CX鏄井杞帹鑽愮殑寮鍙慦indows RT鐨勬柟寮忋備粬涓昏闅愯棌浜咰OM鐨勫鏉傛с傚叧浜庤繖涓棶棰樻垜浠悗緇細鏈夎鏄庛傝繖涓瑙f槸C++/CX瀹為檯灝辨槸C++ CLI銆傚疄闄呬笂榪欐槸涓や釜瀹屽叏涓嶅悓鐨勪笢瑗匡紝C++ CLI鏄繍琛屽湪鎵樼鐜涓嬬殑錛岃孋++/CX瀹屽叏鏄疦ative鐨勩?/p>

3.1         Windows RT浠呯敤浜嶮etro搴旂敤

浠庢灦鏋勫浘涓彲浠ョ湅鍑猴紝W(xué)in RT浠呬粎鐢ㄤ簬Metro搴旂敤銆傚茍縐夋壙浜嗘垜浠垰鎵嶄粙緇嶇殑錛岀畝鍗曢儴緗詫紝娌℃湁鍏變韓鐨勭粍浠訛紝娌℃湁IPC錛岀瓑絳夈?/p>

3.2         Windows RT鏋勫緩涓嶤OM涔嬩笂

榪欎篃鏄負浠涔堣Windows RT鏄瀯寤轟笌Win32涔嬩笂錛屽洜涓篊OM鏄疻in32閲嶈鐨勭粍鎴愰儴鍒嗐傝繖鎰忓懗鐫錛?/p>

錛?錛?nbsp;      浣犲彲浠ョ敤涔嬪墠鎵鏈夌殑娑堣垂COM鐨勬柟寮忔潵浣跨敤Windows RT錛屼綘鍙互鐢–錛屼綘鍙互鐢ˋTL鎴栬呮柊鐨刉RL錛?/p>

錛?錛?nbsp;      WRL瀹屽叏絎﹀悎浼犵粺鐨凜++璇硶錛岃繖鎰忓懗鐫浣犲彲浠ヤ嬌鐢ㄤ笉鍚岀殑緙栬瘧鍣紙渚嬪Intel C++緙栬瘧鍣級鏉ユ瀯寤篗etro搴旂敤銆備絾鏄井杞樉鐒跺笇鏈涘ぇ瀹墮兘鏉ヤ嬌鐢–++/CX錛學(xué)RL鐨勬枃妗h窡娌℃湁宸笉澶氾紝鐜板湪涔熺湅涓嶅埌涓涓畬鏁寸殑渚嬪瓙鍑虹幇銆?/p>

3.3         Windows RT闄愬埗浜嗙郴緇烝PI鐨勮皟鐢?/h2>

Win RT鏄熀浜嶤OM鐨勶紝浣嗘槸COM浠呬粎鏄竴涓簩榪涘埗鍗忚鑰屽凡銆傚湪COM Interface瀹炵幇涓粠鎶鏈笂璁茶繕鏄湪璋冪敤Win32 API銆備絾鐢變簬鍓嶉潰浠嬬粛鐨刉in RT鐨勮璁¤姹傦紝緋葷粺API鐨勮皟鐢ㄩ渶瑕佸彈鍒頒弗鏍肩殑闄愬埗銆備粎浠呮敮鎸佹湁闄愮殑API璋冪敤錛屽洜姝ゅ湪浣犲笇鏈涗嬌鐢ㄤ竴涓猈in32 API鏃訛紝涓瀹氳鏌ヨMSDN涓婄殑Applied To涓鑺傦紝鐪嬬湅鏄惁鏄疢etro Style App | desktop App銆?/p>

鍚屾牱鐨勯亾鐞嗭紝.NET鐨勬煇浜涙柟娉曚篃鍦ㄨ繘琛岀潃緋葷粺璋冪敤錛屽洜姝ゅ湪浣跨敤.NET寮鍙慚etro Style搴旂敤紼嬪簭鐨勬椂鍊欎篃騫朵笉鏄墍鏈夌殑紼嬪簭闆嗛兘鑳藉鏀寔銆傚綋鐒訛紝濡傛灉浣跨敤P-Invoke鐨勬柟寮忚皟鐢╓in32 API閭d箞鍗遍櫓鎬у氨浼氭洿澶с?/p>

鎬諱箣錛屽湪Metro搴旂敤涓皟鐢ㄤ笉鏀寔鐨刉in32 API浼氭湁濡備笅鐨勫悗鏋滐細

錛?錛?nbsp;      鍙戠敓涓涓猂untime Exception錛?/p>

錛?錛?nbsp;      搴旂敤紼嬪簭澶卞幓鍝嶅簲錛屽挨鍏舵槸鍦ㄤ嬌鐢ㄥ拰娑堟伅寰幆鐩稿叧鐨勪唬鐮佹椂銆備緥濡傚Metro App榪涚▼浣跨敤WaitForSingleObject(hProcess)銆?/p>

錛?錛?nbsp;      璋冪敤鎴愬姛錛屼絾鏄綘鐨凪etro App搴旂敤浼氳Windows Store椹沖洖銆?/p>

鎸夌収涓婅堪鍒嗘瀽錛岄偅涔堝嵆浣夸綘瀛樺湪鐩稿綋鍙鐨凜OM浠g爜搴擄紝涔熼渶瑕佸法澶х殑鍔姏鎵嶈兘澶熶繚璇佷粬浠湪Metro App涓婃紜繍琛岋紙娑堥櫎闈炴硶鐨勭郴緇熻皟鐢級銆傚浜庢柊鐨勫簲鐢ㄦ潵璇達紝涓轟簡閬垮厤涔﹀啓澶ч噺鐨凜OM寮鍙戜唬鐮侊紝鏈濂戒嬌鐢–++/CX榪涜寮鍙戜簡銆?/p>

3.4         C++/CX

涓轟粈涔堜細鏈塁++/CX鍛紵榪欏彲浠ヨ仈鎯硁騫村墠鎴戜滑涓轟簡閬垮厤C++寮鍙慍OM鐨勫啑闀跨殑浠g爜錛岃漿鑰屼嬌鐢–寮鍙戝叧閿▼搴忥紝鑰屼嬌鐢╒isual Basic鍒涘緩COM緇勪歡銆傜幇鍦ㄦ椂闂村埌浜?012騫達紝VB6宸茬粡涓嶅湪鑰冭檻鑼冨洿涔嬪唴浜嗭紝浜庢槸C++/CX鍙栦唬浜嗕粬鐨勪綅緗?/p>

C++/CX鏄疦ative鐨勶紝浣嗘槸瀹冪殑璇硶涓轟粈涔堣兘澶熷拰C++ CLI淇濇寔榪戜箮涓鑷村憿錛熻繖鏄洜涓篧in RT鏈韓铏界劧鏄疦ative鐨勶紝浣嗗畠浠?NET鍏煎鐨勬柟寮忔毚闇蹭簡鍏冩暟鎹備絾鏄垜浠湪緙栫▼涓鏃跺埢鎯沖埌錛屾垜浠湪鎿嶄綔瀹炴墦瀹炵殑Native瀵硅薄銆傛牴鏈病鏈変粈涔堝瀮鍦炬敹闆嗗櫒鍦ㄥ府鍔╂垜浠?/p>

閭d箞涓轟粈涔堜笉鍗曠函浣跨敤.NET寮鍙慚etro App鍛紵榪欐槸鍥犱負瀵逛簬縐誨姩璁懼鏉ヨ錛孋PU鐨勯熷害鍜岀數(shù)姹犳槸涓ゅぇ灞闄愶紝鍥犳鍦ㄨ繎涓騫達紝Go Native鐨勫ぇ娼粓浜庤鏉ャ傜洰鍓嶏細

錛?錛?nbsp;      iOS浣跨敤Objective-C榪涜紼嬪簭寮鍙戯紝鑰屼笖鍦ㄧЩ鍔ㄨ澶囦笂涔熸槸娌℃湁鍨冨溇鏀墮泦鍣ㄧ殑錛岄渶瑕佹墜鍔ㄩ噴鏀句嬌鐢ㄧ殑鍐呭瓨錛?/p>

錛?錛?nbsp;      Android涓寮濮嬩嬌鐢↗ava榪涜寮鍙戯紝浣嗘槸鍦ㄧ碂緋曠殑鎬ц兘鍜岀ぞ鍖虹殑寮哄ぇ鍘嬪姏涓嬶紝緇堜簬寮鏀句簡C/C++寮鍙戞帴鍙o紱

錛?錛?nbsp;      WP7/8涔熷嚭鐜頒簡綾諱技Android鐨勬儏鍐點?/p>

鐩墠瀹㈡埛绔簲鐢ㄥ悜鏇磋杽錛堟牳蹇冨簲鐢ㄥ悜鏈嶅姟鍣ㄧЩ鍔級錛屾洿蹇紙榪愯閫熷害蹇紝鑰楃數(shù)灝忥級錛屼氦浜掓洿涓板瘜錛堟病鏈夊姩鐢諱綘閮藉涓嶈搗瑙備紬錛夌殑鏂瑰悜鍙戝睍銆傚洜姝ゅ紑鏀綨ative鎺ュ彛鏄ぇ鍔挎墍瓚嬶紝C/C++欏虹悊鎴愮珷鐨勫湪Windows 8寮哄娍鍥炲綊浜嗐?/p>

浣嗘槸錛岀敤.NET寮鍙慚etro搴旂敤涔熸槸涓涓笉閿欑殑閫夋嫨錛屽挨鍏朵綘鐨勫簲鐢ㄦ病鏈夊瘑闆嗙殑榪愮畻錛堟父鎴忥級鐨勬儏鍐典笅銆備綘鍙互鍙傝冨夠鐏墖涓殑Cheat Sheet銆?/p>



jackdong 2012-10-16 23:56 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              噜噜噜噜噜久久久久久91| 亚洲国产精品传媒在线观看| 亚洲视频在线观看一区| 久久久久国产精品午夜一区| 亚洲精品女人| 亚洲一区二区三区欧美| 免费成人在线视频网站| 欧美成人三级在线| 欧美在线欧美在线| 欧美第一黄网免费网站| 欧美精品在线观看91| 国产精品成人一区二区| 在线视频你懂得一区二区三区| 亚洲缚视频在线观看| 欧美日韩福利在线观看| 久热精品视频在线| 欧美精品国产精品| 国产精品试看| 欧美a级在线| 欧美电影免费观看网站| 久久精品一区二区三区四区 | 亚洲欧洲日本在线| 亚洲大黄网站| 美女被久久久| 亚洲国产99| 中文网丁香综合网| 国产精品免费久久久久久| 亚洲福利视频一区| 欧美亚洲日本一区| 在线一区亚洲| 欧美午夜精品久久久久免费视| 亚洲人成人77777线观看| 欧美成人四级电影| 久久免费少妇高潮久久精品99| 亚洲国产另类精品专区| 欧美 日韩 国产在线| 欧美高清视频一区二区三区在线观看| 亚洲精品女av网站| 亚洲精品美女在线观看| 亚洲精选91| 一区二区冒白浆视频| 国产精品日日摸夜夜摸av| 一区二区三区精品国产| 狠狠色综合播放一区二区| 99成人精品| 免费成人av在线| 久久久国产一区二区三区| 欧美午夜精品理论片a级按摩| 一本色道久久综合亚洲精品婷婷| 一本色道**综合亚洲精品蜜桃冫| 卡一卡二国产精品| 亚洲精品在线三区| 久久se精品一区精品二区| 国产一区二区三区四区hd| 欧美激情a∨在线视频播放| 国产亚洲欧美一区| 国产精品系列在线播放| 国产精品久久久久久五月尺| 国产视频观看一区| 国产精品免费网站在线观看| 在线视频你懂得一区| 性色av一区二区三区在线观看| 欧美日韩亚洲综合在线| 亚洲高清不卡在线| 欧美国产亚洲另类动漫| 亚洲激情电影在线| 亚洲视频一区二区| 激情丁香综合| 亚洲视频欧美视频| 亚洲激情偷拍| 亚洲人午夜精品免费| 国产欧美大片| 日韩视频中午一区| 91久久综合| 久久久久久一区二区三区| 欧美亚洲日本一区| 欧美日韩在线一区二区三区| 麻豆久久婷婷| 国产日韩亚洲| 亚洲视频在线观看| 一本不卡影院| 欧美高清视频www夜色资源网| 久久综合狠狠综合久久综合88| 国产精品电影网站| 亚洲精品123区| 亚洲精品婷婷| 蜜乳av另类精品一区二区| 久久久久久久97| 亚洲欧美视频在线| 欧美精品三级日韩久久| 亚洲成人直播| 亚洲国产成人精品视频| 久久久久九九视频| 久久米奇亚洲| 国内在线观看一区二区三区| 欧美一级视频免费在线观看| 亚洲欧美在线x视频| 国产精品theporn88| 99xxxx成人网| 亚洲免费一级电影| 欧美午夜免费| 亚洲欧美影院| 久久香蕉国产线看观看网| 国产亚洲美州欧州综合国| 亚洲免费网址| 久久久久久久尹人综合网亚洲| 国产一区二区三区在线观看视频 | 亚洲一区二区在线| 亚洲在线一区二区三区| 欧美系列精品| 亚洲欧美日韩一区二区在线| 久久精品国产免费看久久精品| 国产欧美一区二区三区在线看蜜臀| 亚洲欧美视频在线| 久久久久久有精品国产| 精品99一区二区| 老司机久久99久久精品播放免费| 欧美高清不卡| 一区二区三区视频在线播放| 国产精品扒开腿做爽爽爽视频| 夜夜嗨一区二区| 欧美在线亚洲在线| 一区二区三区中文在线观看| 免费看精品久久片| 亚洲最新在线| 久久久亚洲精品一区二区三区| 亚洲国产视频一区| 欧美少妇一区二区| 欧美一区二区三区在| 欧美激情影音先锋| 午夜精品一区二区三区在线| 在线观看成人一级片| 欧美三级电影大全| 久久九九99视频| 日韩午夜免费视频| 久久久久久噜噜噜久久久精品 | 欧美自拍偷拍午夜视频| 亚洲黄色一区二区三区| 国产精品久久久久久久第一福利| 欧美在线一区二区三区| 亚洲国产精品一区在线观看不卡| 亚洲天堂久久| 亚洲国产毛片完整版| 国产精品美腿一区在线看| 久久久蜜桃一区二区人| 亚洲开发第一视频在线播放| 久久久久国产精品人| 亚洲网站视频福利| 在线欧美日韩国产| 国产精品久在线观看| 蜜桃av一区二区| 欧美永久精品| 国产精品99久久99久久久二8| 国产精品入口尤物| 欧美日韩日日骚| 亚洲一区区二区| 亚洲激情小视频| 裸体丰满少妇做受久久99精品| 亚洲少妇在线| 亚洲欧洲日韩女同| 国产日本欧美视频| 国产精品国产三级国产 | 亚洲破处大片| 黄色成人在线网站| 国产乱肥老妇国产一区二| 欧美日韩视频在线一区二区| 久久资源在线| 久久精品亚洲一区| 性8sex亚洲区入口| 亚洲一区二区欧美日韩| 一本色道久久综合| 最新国产成人av网站网址麻豆| 久久夜色精品国产亚洲aⅴ| 午夜精品一区二区三区在线| 中文精品视频一区二区在线观看| 亚洲黄色三级| 亚洲欧洲精品一区二区三区不卡| 在线观看日韩av| 一区二区自拍| 在线看不卡av| 亚洲国产美女久久久久| 在线观看精品| 亚洲韩日在线| 亚洲精品一区二区三区av| 亚洲国产mv| 亚洲激情黄色| 99成人精品| 在线亚洲免费视频| 亚洲综合首页| 久久av二区| 久久久久久一区二区| 老色鬼精品视频在线观看播放| 美国十次了思思久久精品导航| 欧美激情一区二区三区| 亚洲区一区二区三区| 一区二区三区欧美在线| 在线一区欧美| 久久久av网站| 欧美金8天国| 国产精品视频午夜|