跨平台需要什么?

跨平台开发涉及选择跨平台GUI或自开发,需要针对不同平台的编译器和makefile/cmake。核心关注点包括事件获取、图像输出、音频处理的平台差异,以及统一的图形系统和事件机制。关键技术包括SDL、Qt的embedded版本和miniGui的ial实现。窗口系统、事件分发和管理也是挑战。要做好跨平台,耐心必不可少。
摘要由CSDN通过智能技术生成

    跨平台需要什么?

    这个问题的答案分为两种。第一种是选择一个跨平台的GUI,然后在它的基础上做应用,对应于不同平台的特殊硬件或特殊协议写不同版本的代码。第二种是完全自己开发,如果开发者对各个平台都不熟悉或只熟悉其中一个平台,那么这是个极大的挑战。

    无论哪一种都需要每种平台下的C/C++编译器。编译器提供的宏将是我们的代码判断不同平台的依据,而通过编写不同平台下的makefile(可使用cmake),同样能控制需要编译的代码。

    应当确定的一点是,平台的不同只会体现在两个地方:不同的硬件和不同的操作系统,那么我们必须保证这些不同不要扩散到代码的所有地方。

    提取不同点,是跨平台的第一步。对于一个跨平台的GUI,它主要关心这些:输入设备信息(事件)的获取、图像的输出、音频等。对事件获取这一点,不同的平台截然不同,Win平台直接从系统消息循环获取、Unix平台通过侦听设备端口,读取设备驱动文件获取(或在Linux下直接通过X窗口协议获取);对图像输出这一点,Windows平台可以使用gdi、directx、opengl,WinCE平台可以使用gdi或gapi,Linux平台可以使用framebuffer0、opengl或X窗口协议;对于音频,Win平台可以直接使用api,Linux下则要自己打开音频设备文件,往里面写pcm流。当然,对于不同的操作系统还有很多不同点,如线程与进程、io、字节序等。

    将这些不同限制在一个比较底层的地方,在其上构建一个框架,使上层的所有应用都与平台无关,这是接下来的工作。

    图形系统可以统一采用fra

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值