当前位置: 代码迷 >> QT开发 >> 关于跨平台代码大家伙儿的做法是怎样的
  详细解决方案

关于跨平台代码大家伙儿的做法是怎样的

热度:137   发布时间:2016-04-25 03:04:26.0
关于跨平台代码大家的做法是怎样的
最近有个需求是做一个debug的工具,发命令给硬盘。
但是要求linux和windows上都能用。

界面部分可以交给QT这个没有问题,但是设计到底层接口时就会涉及到linux和windows的区别来,我现在想到的做法是定义相同的接口,但是接口的实现部分放在2个不同的cpp中,一个是cpp对应linux的实现,一个是对应windows的实现。然后将这个二个cpp include到另一个cpp文件中在这个cpp文件中通过宏来确定平台,做到不同平台下编译不同cpp文件。

说了这么多主要是想知道这种方式是否合理,大家一般都是什么方式处理跨平台的底层接口。
毕竟qt中很多特定平台下的底层接口是没有对应的api的。
比如windows下的DeviceIOControl这个API我就没有找到对应的QT调用。
------解决思路----------------------
大家一般都是什么方式处理跨平台的底层接口。

不同平台的相似功能抽象为同一个接口
在不同平台根据宏,或者虚函数来做。

------解决思路----------------------
可以参考Qt4 的 q_p来实现撒,如果高端点的可以参考qt5的qpa
------解决思路----------------------
我一般都是用#ifdef WIN32或者#ifdef UNIX
------解决思路----------------------
把所有底层抽出来成一个动态库,不同平台库代码不一样但是提供一致的接口
------解决思路----------------------
条件编译。。。