跨平台技术实现原理

跨平台技术主要通过库函数调用来实现,Qt利用各操作系统特定的宏识别不同平台并调用相应API。大部分系统遵循POSIX接口,允许代码共享,少数接口需按平台区分。参考如POCO库的实现,可以发现跨平台库是如何封装系统API的。
摘要由CSDN通过智能技术生成

跨平台技术实现原理

现有跨平台技术就是通过库函数调用实现的,不使用系统函数调用。

  • Qt如何识别不同系统
    • Qt各个操作系统都有特定的宏,然后代码里面根据不同的宏调用不同平台的API

对于程序或框架如何判断自己在什么系统或版本(相同的系统版本不同Api也是有所不同的)下,这个很简单,不同的系统或版本都有自己的特征,可能是独特的宏定义,特定的标志位,或者直接有对应的函数获取。
当然,目前平台虽然看似差别很大,但是逐渐已经形成了大家共同承认的一些规范,比如Windows、Linux、Unix目前都已经遵循了POSIX接口规范,这就使得他们中大部分的常用接口都是近似的,所以在跨平台框架里,这大部分的代码是可以共用的,只有少部分也极少用到的接口需要区分开分别来写。

跨平台库都是根据各个平台的系统API库进行封装的。
各个操作系统都有特定的宏,然后代码里面根据不同的宏调用不同平台的API。你可以参考一些优秀的开源库的实现。
比如 POCO的Foundation
这里面有大量的根据不同平台写的各种实现。

https://github.com/pocoproject/poco/blob/develop/Foundation/src/NamedMutex_Android.cpp
https://github.com/pocoproject/poco/blob/develop/Foundation/src/NamedMutex_UNIX.cpp
https://github.com/pocop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清梦旅人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值