Win8QQ Twitter: Win8QQ Twitter
Win8QQ 腾讯微博: Win8QQ 腾讯微博
PS.
Win8QQ是针对Windows 8 Metro UI的全新体验版本,只能从Windows Store上下载;
Windows 8 Desktop下还是继续使用QQ2011,还有即将面世的QQ2012
本博客非官方博客,所有消息均为“小道消息” :)
Win8QQ Twitter: Win8QQ Twitter
Win8QQ 腾讯微博: Win8QQ 腾讯微博
PS.
Win8QQ是针对Windows 8 Metro UI的全新体验版本,只能从Windows Store上下载;
Windows 8 Desktop下还是继续使用QQ2011,还有即将面世的QQ2012
本博客非官方博客,所有消息均为“小道消息” :)
从珠海九洲港出发,坐船去香港休闲一日游,下面是一些小提示,希望对没去过的人有帮助。
1、从九洲港坐船去香港的船票是可以网上购票的,特别是节假日期间,一定要提前网上订票。
2、从九洲港去香港的船分别到两个码头:中港城码头和港澳码头
中港城码头在尖沙咀,靠近天星码头、星光大道、尖沙咀地铁站;
从中港城去天星码头的路线:沿着广东道一路走到头就可以了;
港澳码头在港岛,上环,两个码头分别靠近两岸的天星码头(港岛那边叫中环码头7号码头);
3、从中港城码头去港澳码头怎么走
沿着广东道步行到天星码头(步行10分钟内,天星码头旁边的香港文化中心算是一个标志性建筑);
搭乘天星小轮到对岸7号码头;从7号码头沿着海边,往1号码头方向一路走,顺着民光街步行10分钟左右就能走到港澳码头。
4、从中港城码头去山顶怎么走
沿着广东道步行到天星码头(步行10分钟内,天星码头旁边的香港文化中心算是一个标志性建筑);
搭乘天星小轮到对岸,中环码头 7号码头;
从中环码头出发往山顶,见第6条提示
5、从港澳码头去山顶怎么走
沿着海边步行,顺着民光街步行10分钟左右就能走到中环码头
从中环码头出发往山顶,见第6条提示
6、从中环码头去山顶怎么走
6.1 方案一:搭缆车
在7号码头出口和8号码头出口中间的位置可以找到15C巴士站,搭乘15C巴士前往搭乘山顶缆车,港币$4.2,缆车可以直接使用八达通乘坐,单程$28,双程套票是$40
6.2 方案二:搭巴士上山
在5号码头出口附近可以找到15路巴士站,搭乘15路巴士可以直接抵达山顶,当然搭缆车要快一点
7、山顶的蜡像馆,爱因斯坦比较像,其他很多都不太像,拍照别开闪光,否则蜡人会反光,你懂的
Have fun :)
在WinRT下使用软键盘可能会出现“黑屏”的Bug,这个时候你需要特别留意下是不是使用错了InputPaneVisibilityEventArgs下面这个属性:
1 | EnsuredFocusedElementInView |
出现黑屏的问题,试试在InputPane的Showing事件处理时将EnsuredFocusedElementInView赋值为false
1 | The InputPane class has the following events. |
两个相关的MSDN链接:
比较推崇《Rework》中的小团队小公司,其实我自己也是从投入工作开始一直在经意或不经意地探寻着小团队的成功之道
且不论团队大小,团队成功的要素是什么?
成功的团队大多是相似,但失败的团队却各有各的不幸。
这些看似相似的成功经验,每个关键字都能写成一本书:定位、执行力、管理、成本控制……
那么小团队在这些很可能带来成功的因素上有什么优劣势呢?
决策的团队不可能太多,也不能太多,团队总是要有人来领导,其他人要做的就是100%的信任,或者离开,所以这点上小团队和大团队不会有直接的高下之分。
我个人是一个GTD深度中毒者,我会尽可能的把任务分解,然后按优先级排序然后逐个执行,这是我的高效法则;
对于一个团队来说只要他还有着生命力,那么工作永远都是做不完的,那么无非还是一样:优先级;
假设团队成员的数量决定执行力的话那么小团队的缺点在于会做的比大团的慢,这也许是很多创业小团队在别人下班的时候还在干活的原因,因为他们人少;
但是,执行力并不是和人数的多少成正比!所以在这一点上我个人的观点是:取决于团队的目标,目标由小变大,人员也以应该有小变大,然后保持平衡;
老板们都希望自己手下有一支短小精干的小团队,就像《24》里的杰克鲍尔,执行力上,CTU的10人小团队,不会差于军队。
……
……
这篇随笔的草稿很早就写成了,但是一直想不到该如何续笔,也许未完成也是一种完成,完成了记录当时思考状态的文章。
我喜欢小团队,希望自己的小团队能够敏捷的输出好的产品和理念,2012年还有很多事情要做,小团队暂时只剩我一个人全职了,但会慢慢好起来的~
我调侃的跟lori说,等我一个人把Win8QQ写好了,我就可以升T4了,谁说不是呢!
但一个人注定不是团队,期待我的队友们归队的那一天。
“白痴!我根本就不会剑术!而且我也不会航海!更不会做菜!也不会说谎!不懂医术!不懂历史!不懂修船!不懂音乐!如果没有他们的帮助我根本活不下去!”
在WinRT下,文件访问有着严格的限制,默认你只能访问Windows::Storage::ApplicationData::Current 下属的一些目录,连“我的文档”,“我的图片”都无法访问。
那么如果我们想从“我的图片”中选择一张图片并上传,我们应该怎么做呢?
我当时也找到了这个MSDN帖子:Access denied on Pictures library,但没有得到答案,最终我自己解决后回复如下:
If you want access a file in Document Library,you must follow:
1.select “Document Library Access” in “Capabilities” Tab of “.appxmanifest”
2.add “File Type Associations” in Declarations Tab of “.appxmanifest”
you can get sample from “File access sample”, which is one of “Windows Developer Preview Metro style app samples”
这一步我自己也是后面自己查看后才发现的,一定要特别留意。
用Windows::Storage下的CopyAsync方法先把文件复制到应用自己的目录下:Windows::Storage::ApplicationData::Current->TemporaryFolder,
在这个目录下的文件你就可以用CreateFile2、fopen等方法来访问了。
从Picture Library复制到App Temp目录下的代码就暂时不放出来了,除非有人需要,其实就是一堆的Lambda表达式
其实你在“Capabilities”中选择“Document Library Access”时,右边的文字提示对这个问题说的很清楚,只是大家一开始都没太留意,原来还有一个步骤要做:
The package can onle access file types in the documents library that are defined in the manifest
using the File Association Handler declaration.
原文:
Proviedes the capability to add, change, or delete files in the documents library. The package can onle access file
types in the documents library that are defined in the manifest using the File Association Handler declaration.
The package cannot access document libraryies on HomeGroup computers.
本文发表时Win8和VS2011还没正式发布,处于Developer Preview版本,之后的情况可能不是这样了
很多第三方库类似zlib,sqlite都是.c实现的,这些库如何用到WinRT中呢?
把.c文件移植成.cpp
你用的是系统自带的Express版本,这个是没有的,要用完整版,从这里可以下载到:
Microsoft® Visual Studio® 11 Developer Preview (ISO)
照着指引改吧,第三方库写的不好的话,改起来就会很痛苦;或者你等待Win8普及后第三方库作者更新代码。
本文属于转载,来源于MSDN:Win32 and COM for Metro style apps
由于在中国访问这个链接太吃力,而这个链接又非常有用,所以,不得已,整合下微软个几个子页面,方便查找的同时也算是备份一下这个数据。
1 | [This documentation is preliminary and is subject to change.] |
1 | [This documentation is preliminary and is subject to change.] |
1 | [This documentation is preliminary and is subject to change.] |
1 | [This documentation is preliminary and is subject to change.] |
1 | [This documentation is preliminary and is subject to change.] |
1 | [This documentation is preliminary and is subject to change.] |
1 | [This documentation is preliminary and is subject to change.] |
1 | [This documentation is preliminary and is subject to change.] |
1 | [This documentation is preliminary and is subject to change.] |
1 | [This documentation is preliminary and is subject to change.] |
首先要明确下迁移成功的标准:通过Windows App Certification Kit的Validate Metro style App
这个问题很诡异,我换了一台机器就好了,完全不知道什么原因,可以参照下下面这个帖子,看看过段时间微软的人会不会答复这个问题。
Prerequisites for exposing metro applications to the Windows Logo Certification GUI application?
如果用到了动态链接库,Deploy和Package VS都会把References那里指定的那个DLL打包过去!
注意:Debug和Release只能选择一个!这个问题不留意的话会遇到非常诡异的问题,编译没问题,调用时抛出莫名其妙的Exception
认证的结果显示用到了不被支持的API,解决问题的方法比较直接,无非就是去掉对这些函数的使用,但是我发现我明明已经不用这个函数了,但是检测还是不通过
Use of Supported Platform APIs
FAILED Supported APIs
Error: This application failed the supported API check.
1 | CreateEvent->CreateEventEx |
1 | DWORD WinRTGetFileSize(_In_ HANDLE hFile, _Out_opt_ LPDWORD lpFileSizeHigh) |
(find Win32 API which is supported by WinRT here):
最近我在将一些代码从Win32迁移到WinRT,开发环境是Win8的Windows Developer Preview版和Visual Studio 11 Developer Preview,在迁移sqlite和zlib时发现了一个诡异的问题:
编译.C后缀的文件,无论是什么文件,只要以c类型编译都会出现一个Error
E:\SQliteBuildDemo\SQliteBuildDemo\sqlite3.c : fatal error C1083: Cannot open compiler intermediate file:
‘C:\Users\linyehui\AppData\Local\Temp_CL_01c0d5cfmd’: No such file or directory
但如果什么都不改,只是把工程中的.c文件属性里的编译类型改成C++,就不会有这个错误,但需要将C的语法转换成C++语法才可以。
既然用C++编译可以,那就改成C++编译,然后把C的语法改成C++。
这个工作量和.C文件本身的代码风格会有很大的差异,像我们的工程用到了sqlite和zlib,sqlite代码相对少点,但是把所有zlib中的.c改造成c++那真是一项繁重的体力活!!
新建了一个3rdparty的Win32 static lib工程,把sqlite和zlib的代码都添加进去,然后在Metro style app工程中include上这个3rdparty.lib
在Metrol style app中引用win32的代码要特别留意,因为WinRT下只包含了Win32 API的一个子集,所以如果你在Win32工程下使用了WinRT不支持的API,那么工程虽然编译过了,但在WinRT下的使用其实是会有问题的,到时你可能会被这种错误搞的莫名其妙。
举例来说:
WinRT下是不支持WinSock2.h这套API的,但如果你的Win32 static lib工程中使用了这样的方法,而Metrol style app工程又使用了这个static lib,那么你的应用其实是有问题的,甚至有可能都无法通过Windows Store的上架申请。
两个方案我都尝试过,都是可行的,但都有弊端,其实这个问题归根结底就是Visual Studio 11 Developer Preview的一个bug,下一个VS2011版本应该就会修正了。
嗯,这是微软的一个BUG。
WinRT下如何在另外一个线程中访问UI线程 How To Access UI Element In Another Thread
在UI所属线程之外的线程调用UI元素的方法或者属性会导致异常,怎样解决这样的问题呢?
Windows::UI::Core::CoreDispatcher->Invoke
这个方法会将函数调用放到CoreDispatcher所属的线程中进行调用,而这个CoreDispatcher一般属于界面线程,可以这么得到:
Window::Current->CoreWindows->Dispatcher
假设存在一个回调接口的实现类CXXCallback,专门用于接收别的线程的回调消息,然后负责通知界面更新
1 | void CXXCallback::OnUIChange() |
m_coreDispatcher 可以从任何CoreWindows的派生类型中获取到,可以想象到WinRT的API在底下帮我们做了什么事情?
1、一个窗口,用来PostMessage
2、帮我们维护一些全局变量,让我们无缝的使用CXXCallback的类成员变量和OnUIChange()函数内的临时变量
Async everywhere: creating responsive APIs & appsPPT的第31页的位置
4 Don’t worry about Dispatcher.Invoke…