带有WinRT标签的文章


做播放器时一般人多多少少都会遇到点字符乱码的问题,这些乱码基本都是出在mp3等老旧的格式上。这大概都是因为这些音频文件使用不遵循编码标准的软件制作而成。解决方法似乎也不怎么好(至少我的乱码mp3没有办法解决),不过MLang API作为Windows系统自带的API(Universal App可用)是非常方便好用的窄字符串编码检测方式,特定情况下非常好用。 使用方法非常简单: #include <MLang.h> HRESULT DetectCodepage(char* text, int* codePage) { IMultiLanguage2* iml; HRESULT hr = CoCreateInstance(CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER, IID_…

几个月之前我写了一篇文章讲怎么把C++/CX的异步操作同步执行(https://hjc.im/winrt-ckai-fa-zhi-yi-bu-zhuan-tong-bu/ ),当初做这个其实最主要就是为了给ffmpeg读写文件。 不过如果只是为了读写文件,这样是个比较笨的办法,更好的办法是使用API函数CreateStreamOverRandomAccessStream直接将IRandomAccessStream转换成COM的IStream。 IStream* fileStreamData; HRESULT hr = CreateStreamOverRandomAccessStream( reinterpret_cast<IUnknown*>(stream), IID_PPV_ARGS(&fileStreamData)); if (!SUCCEEDED(hr)) { ...处理异常 } 得到一个IStream对象之后就可以使用它来读写流了。 例如读取: uint8_t* buf…

其实这是因为布卡漫画官方给WP8第三方客户端留了坑,才有的一个解决方案。 事情是这样的: 某天UVE开发组的一个成员跟我说WP8布卡漫画里出现了奇怪的东西导致看不了,于是我向作者反馈了一下。后来作者告诉我是布卡漫画官方接口变化,并且引入了webp格式图片。 于是我就试着做了一个libwebp的Wrapper,可以给Silverlight使用。 项目使用了谷歌官方的libwebp,编译到Windows Phone 8.0 Silverlight,并使用LoadPackagedLibrary加载dll,获取函数指针后调用。只支持解码到RGB,BGR,RGBA,BGRA四种。 这个wrapper仅为Silverlight编写,如果是Windows Runtime App,可以使用更加高效的P/Invoke直接调用。 下载:https://blog.ligstd.com/HJC.LibWebP.Demo.…

微软设计API的人脑袋绝对有坑,好多API只给异步不给同步,搞得像所有开发都是在UI线程里进行一样。事实上开发非UI代码,尤其是使用C++,利用现成的库时,简直是痛不欲生! 不多说,直接贴代码了。 AsyncHelper.h /* * AsyncHelper.h * * Date: 1st July, 2014 Author: David Huang * (C) 2014 Light Studio. All Rights Reserved. */ #pragma once #include <ppltasks.h> #include…