Windows Store 平台移植 —— (2) 了解开发环境

1、Windows Store 相关技术

随着 Win8 的发布,微软有给我们带来一系列的新概念,包括:

  • Windows Runtime
  • C++/CX
  • Windows Runtime C++ Template Library(WRL)
而一些原有的概念也与 Win 8 有关,比如:
  • COM
  • ATL
  • C++/CLI
  • .NET

2、C/C++移植相关技术

如果要将已有 C、C++ 程序移植到 Windows Store 环境,你应该了解的是:

  • Win32 API

Win32 API 不是什么新东西,之前在 windows 上做过开发的人都应该知道,比如 Sleep、CreateFile 等等。但是进入到 Windows Store 环境,这些 API 能用的大概就剩一半了。不管微软出于什么目的,删除了的这些 API,这是我们必须面对的问题。

MSDN 链接:

Win32 and COM APIs

  • Windows Runtime

Windows 8 增加了 Windows Runtime,Windows Runtime 是一种面向对象的跨语言的框架,Windows Runtime 组件能够被 C++、VB、C#、Javascript 调用。反过来,我们也可以将 C++ 实现的功能通过 Windows Runtime 提供给其他语言调用。
  • Windows Runtime API
随着 Windows Runtime 而来的是,一些提供系统基本功能的 Windows Runtime 组件,称为 Windows Runtime API。在 C++ 中可以使用这些组件功能。
MSDN 链接:
  • C++/CX
全新的C++/CX(组件扩展)语言是对 C++ 的扩展。C++/CX 支持 C++0x 标准,比如 auto 关键字、lamba 表达式和 右值引用(&&) 等等。C++/CX 的扩展功能能够与 Windows Runtime 组件交互,通过扩展的 ref 类(结构体)语法、value 类(结构体)语法实现。我们要调用 Windows Runtime 组件功能,以及将已有 C/C++ 库的功能提供给 UI 和 其他语言调用,都有通过 C++/CX 达成目的。
MSDN 链接:

3、移植的基本思路


基于对 Windows Store 的了解,我们做 C/C++ 移植主要的任务有:
  • Win32 API 补充
首先,我们需要通过  Windows Store 现有的 API 实现缺失的 Win32 API。实现的方式主要有下列几种:
    • 通过 UNICODE 版本实现缺失的 ASCII 版本,比如 GetStringTypeExW -> GetStringTypeExA
    • 通过提供相同功能的扩展版本 API 实现缺失的普通版本 API,比如 GetTickCount64 -> GetTickCount
    • 通过 Windows Store 引入的替代功能 API 实现被替代的 API,比如 CreateFileMappingFromApp -> CreateFileMapping
    • 通过 Windows Runtime API 实现一系列相关 API,比如 Windows::Socket 组件集 -> socket,WSASocket 系列 API
    • 自行实现 Windows Store 没有的功能的 API,比如 GetEnvironmentVariable 环境变量功能
  • 封装 Windows Runtime 组件
接着,需要将已有的 C/C++ 库封装为 Windows Runtime 组件,提供给其他代码调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting Horse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值