window8 App开发
文章平均质量分 82
MU_SZ
平凡的IT人,平淡的IT生活,希望这里的点滴,能成为其中不多的亮点
展开
-
【windows8开发】开发平台与开发框架
开门见山,先把windows8 开发平台和开发框架分享给大家。 win8 App开发主要分成两部分,desktop app和metro app。右边蓝色的部分就是desktop app的部分,也是从win7延续过来没有发生变动的部分,前段在论坛上经常看到有人说在win8中不再支持MFC,ATL等,这些绝对是谣言,以前桌面开发支持的,win8桌面程序也都支持,所以搞MFC,原创 2012-04-20 22:05:50 · 9318 阅读 · 4 评论 -
【Windows8开发】异步编程进阶篇之 create_async, create_task, make_task区别与联系
create_async, create_task, make_task都是WinRT下为异步编程服务的API,它们之间有何联系,又有何区别呢?create_async是为跨语言调用服务的,也就是说如果希望封装的方法可以被C++以外语言的组件调用,那就需要create_async来创建异步处理,那除了这点外,它与create_task在实际应用中还有什么区别与联系呢?首先是返回值。原创 2012-09-18 12:06:14 · 10512 阅读 · 4 评论 -
【windows8开发】异步编程入门篇之 Concurrency::task(C++)
从以前的windows应用程序开发转变到Windows8 Metro App开发,如果非要说最需要改变的观念有哪些,显而易见的Metro UI风格大家肯定都认同,而另外一个就是异步处理。从win32早期几乎全盘的同步API,到后来.Net开始支持异步API,微软其实已经做出了API风格上的转变,但是晦涩的回调处理,异常,调试难度让大多数开发者对异步模型开发望而却步,同步处理的观念紧锁住了几乎绝大部原创 2012-04-23 17:44:23 · 10054 阅读 · 6 评论 -
【windows8开发】异步编程入门篇之 Concurrency::create_async(C++)
前文中提到过,Concurrency::task支持异步处理,但是由于它不支持跟其他语言的交互,所以如果希望开发的组件能在其他语言,比如C#,Javascript,VB中使用的话,就需要多语言交互的API,它就是Concurrency::create_async。 我们把Concurrency::task和Concurrency::create_async两种处理方式对照来看。原创 2012-04-24 11:36:51 · 5473 阅读 · 5 评论 -
【Windows8开发】异步编程进阶篇之 对thread说不,用task
之前的文章中曾经简单描述过WinRT异步编程的一些入门知识和浅显的实例,鉴于WinRT中异步的应用相当广泛,本系列中会更深入的介绍C++异步编程的一些细节和难点,希望能带给大家更多实质性的收获。之前异步编程入门篇的一些文章链接如下:异步编程入门篇之 Concurrency::create_async(C++)异步编程入门篇之 Concurrency::task(C++)异步原创 2012-09-18 10:44:02 · 5974 阅读 · 0 评论 -
【Windows8开发】异步编程进阶篇之 单线程套间(STA)及如何控制task执行上下文
(请大家注意了,本文涉及的概念相当重要,开发中相当管用)开始就先来看一段代码:void SampleCpp::MainPage::Btn_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e){ auto workItemDelegate = [this]() { // d原创 2012-09-19 22:58:47 · 5048 阅读 · 5 评论 -
【windows8开发】WinRT组件封装及与javascript的交互
/******************************************开始本文之前,借块地方说明下,本文之前的所有win8系列的文章是在windows 8 consumer preview(消费者预览版)的上进行的一些尝试和分享,本文开始会切换到windows 8 release preview(发行者预览版),因为从老版本到现在的版本间,framework中一些API有所改变原创 2012-08-16 09:39:10 · 2768 阅读 · 1 评论 -
【Windows8开发】异步编程进阶篇之 task group的几种方式及其间的区别
前文中曾介绍过可以通过create_task创建task并异步执行,这是对单个任务而言的,本文主要讨论任务组(task group)的管理,WinRT中提出了多种进行task group管理的方法,接下来开始一一说明。1. Concurrency::when_all和Concurrency::when_anyWinRT提供了when_all和when_any来控制一组任务的执行。原创 2012-09-20 16:31:19 · 4187 阅读 · 0 评论 -
【Windows8开发】异步编程进阶篇之 Platform::Exception及task间的异常控制
先考虑下使用传统Thread API时,线程间的异常控制往往是一件相当痛苦的事情,由于某个线程的异常未捕获导致整个程序crash的情况也许很多人都碰到过。比如如果有一组任务链处理序列,我们往往需要对每个线程都详细考虑其可能抛出的各种异常,如果需要把一个异常从一个线程抛到另外一个线程进行处理时,那更需要多费很多周折,而且往往费时费力最后却还总是会发现这样那样的疏忽与漏洞。那WinRT提供的task有原创 2012-09-21 15:40:37 · 3913 阅读 · 0 评论 -
【Windows8开发】异步编程进阶篇之 谈task如何避免线程取消引发的系列问题
曾经在《【Windows8开发】异步编程进阶篇之 对thread说不,用task》一文中说明过在Metro程序中推荐使用WinRT的task,而避免使用传统的线程API,理由之一就是当使用传统线程调用方式,在人为(通过代码)去终止一个线程时经常会引发一些意料之外的异常情况,导致程序异常或崩溃,让我们回忆一下任务(thread)取消引发的系列问题:1. 强制终止一个线程时,该线程占用资源未释原创 2012-09-24 14:53:18 · 5640 阅读 · 7 评论 -
【Windows8开发】关于WinRT组件,WinRT dll,Win32 dll,WinRT exe组件的一些尝试
随着Win8的推出,提出了很多新的概念,比如WinRT Component,WinRT dll,WinRT exe component等。基于这些新的概念,进行了很多尝试,本文会把结果分享给大家,希望对大家能有所触发。1. WinRT Component, WinRT dll,Win32 dll区别与联系前面系列文章中提到了n多的WinRT Component(WinRT组件)。那原创 2012-10-19 10:44:19 · 9943 阅读 · 8 评论 -
Being productive in the background – background tasks
from:http://blogs.msdn.com/b/windowsappdev/archive/2012/05/24/being-productive-in-the-background-background-tasks.aspxIn my previous post (Being productive in the background), I explained the Wi转载 2012-09-11 09:37:35 · 2950 阅读 · 0 评论 -
【Windows8开发】Metro App生命周期之打包、部署安装与卸载
记得之前刚试用Win 8开发者预览版那会,VS11编译完Metro App工程后,想直接双击exe运行,却弹出个警告框,提示该程序只能结合App容器启动运行。那如何去部署和启动Metro App呢?后来随着对Win 8的了解有了答案。当我们在VS2012中编译我们的代码并F5执行后,你会发现Metro桌面已经生成了该程序的快捷方式了,VS帮我们一条龙做了程序的编译,安装和部署,之后你也原创 2012-09-11 15:28:18 · 10061 阅读 · 0 评论 -
【windows8开发】Metro App生命周期之Suspended与Resume
先来看这样一个场景:我们打开一个Metro程序,进行了一系列的编辑工作,突然想要查看另外一个Metro程序,然后ALT+TAB切换到这个App,确认完需要查看的内容后想切换回原来那个正在编辑的程序,突然发现那个程序已经被系统终止了,重新打开发现所有已编辑的东西都没了,于是大呼一声,“这是什么破系统.......”。呵呵,其实这不是系统的问题,而是这个应用程序应该解决的问题,本文会讨论Metro原创 2012-09-06 16:45:11 · 3047 阅读 · 0 评论 -
【windows8开发】异步编程之Promise(Javascript)
Javascript是一种单线程语言,一旦运行一些耗时的处理,其他一切处理都会被阻塞。所以在Javascript中,异步处理显得尤为重要。由于Javascript只会运行在一个线程中,它的异步模式本质是把一些耗时的处理推迟到未来的某个时间点来运行,也正因如此,在Javascript的代码中往往充满了很多的回调处理。Windows Runtime中提供了Promise接口,利用这个接口可以很方便原创 2012-04-24 16:03:24 · 3594 阅读 · 0 评论 -
【windows8开发】序
软件开发者真是闲不下来的命,技术更新太快,这不,微软这位大哥又高举windows8闪亮登场了,关于win8的战略意义,时代背景,偶这样的小人物在这里就不多说了,google上这类文章不胜枚举,作为开发者,在这个系列里会从技术角度去一探win8的一些特性和风采。 说到为什么写win8方向博客,原因有二: 第一,最近在抽时间看MSDN提供的windows8 ap原创 2012-04-20 15:40:55 · 2707 阅读 · 5 评论 -
【windows8开发】回复g10589119提出的问题(c#调用C++/CX dll)
g10589119在【windows8开发】深入浅出C++/CX一文中提出了一下这个问题,特以此文进行回复,大家如果有不同意见和想法可以留言分享下。g10589119的问题如下:----------------------------------------------------------------------------------------------From g1058911原创 2012-05-29 16:55:51 · 3247 阅读 · 1 评论 -
【windows8开发】C++开发WinRT组件和JS调用
通过Windows Runtime(以下简称WinRT),可以用C++或C#或VB很方便的开发组件(dll),并且这些组件在用Javascript开发的Metro app中可以几乎无缝的被(javascript)调用。由于win8开发平台下,Javascript并不能访问原生的C++代码(虽然可以访问WinRT API),而实际开发中,经常会有一些既存的组件,或者需要用一些第三方库,这时就可以考虑原创 2012-04-21 15:30:30 · 8649 阅读 · 7 评论 -
【windows8开发】C++开发Metro风格App
在win8系列前面的文章里跟大家分享过,win8下基于WinRT有3种开发Metro UI App的方式,一种是XAML+C++,一种是html+css+javascript,一种是XAML+C#。开发平台和框架相关的详细内容可以参考这篇文章:《【windows8开发】开发平台与开发框架》先说明下自己的开发环境吧,我是用VMWare装了Win8的消费者预览版,然后又装了Visual Stu原创 2012-05-17 13:44:31 · 9087 阅读 · 4 评论 -
【windows8开发】javascript开发Metro风格App
javascript在web前端的地位不需要再花任何言语去证明了,NodeJS的爆发又给JS带来了Web后台开发的新定义。而如今Windows8又提出了一种新的开发框架:用javascript开发Native App。可以说,锋利的javascript必然让windows平台Native App开发的生产力再上一个台阶。不吹嘘javascript的威力了,进入主题。本文主要讨论java原创 2012-07-08 22:16:34 · 8436 阅读 · 5 评论 -
【windows8开发】深入浅出C++/CX
什么是C++ /CX? 首先要明白它跟C++ 0x/11以及C++ /CLR是完全不同的东西。C++ 0x/11是目前最新的C++标准库,而C++ /CX其实是微软在Win8开发平台下,对C++语言的一种扩展。C++ /CLR是微软为了C++能在.Net下运行,针对CLR,虽然也是对C++的扩展,但它编译后是托管于CLR的,属于Managed C++。而C++ /CX则属于Native C++,它原创 2012-04-25 11:51:42 · 18120 阅读 · 19 评论 -
【windows8开发】现有代码移植到Metro App所必须的API整合
windows 8 推出在即,众多软件,代码都面临移植到这个新平台的问题,由于Metro App需要基于windows runtime framework来开发,而很多传统的windows API在winRT下并不被支持,所以本文会讨论哪些现存的windows API在Metro App中能被支持,哪些不被支持需要被替换,当然讨论的内容不会涵盖所有的API,只会把重点放在一些比较基本和常用的API原创 2012-08-22 14:59:06 · 8152 阅读 · 5 评论 -
【windows8开发】Metro App生命周期之概述
Metro App和传统的Desktop App虽然可以共存于Windows8中,但Metro App本身却是为Touch设备而生的。所以不管是其UE风格还是技术架构其实都跟传统的App存在很大差异。本文会概要性的介绍一下Metro App的生命周期有哪些状态,当然后续还会跟进其他一些文章来详细讨论生命周期中的各种状态以及相关程序中的一些细节。先看一张图:其实在《【windows8原创 2012-08-24 15:05:48 · 2903 阅读 · 1 评论 -
【windows8开发】Metro App生命周期之启动
前文介绍过Metro App的生命周期中的各个状态(NotRunning, Running, Suspended)以及概要性的说明了程序的启动,挂起,恢复,关闭等概念,而在本文中会通过相关代码,着重介绍Metro App在启动时的一些细节。本文中的示例代码会使用C++,因为都是基于WinRT,所以Javascript的实现的原理应该是类似的,如果有希望具体了解Javascript的实现方式的,可以原创 2012-08-30 11:01:18 · 3053 阅读 · 0 评论 -
Windows 8 desktop app中dll搜索路径设置的诡异现象,Bug?
某个桌面程序在win 8上运行异常的问题困扰了我有近一周,今天终于找到了根本原因,严重怀疑是win 8的一个Bug。(所有程序都是desktop app,跟Metro模式无关)情况是这样的,比如有个Main.exe会通过CreateProcess启动另外一个Sub.exe,而这个Sub.exe中会通过LoadLibrary动态加载多个动态链接库,Main.exe和Sub.exe以及相关dl原创 2013-04-25 16:05:58 · 3499 阅读 · 0 评论