• 平台差异

拟使用windows7平台,linux平台依赖的系统文件及对应链接库,须在windows平台找到对应库,或者替代库。

(1)如sys/types.h ,sys/ioctl.h ,net/if.h 等,因为平台差异所以在代码中会尽量避免使用,或寻找替代。

(2)util文件夹下的thread_safe_queue.h,timer.h,unique_queue.h无用,可删。

(3)包含路径不同,如linux下的home路径,在windows中会很少使用,应尽量使用相对路径。

  • QT版本差异

拟使用Qt5.11.1,QtCreator4.6.1,VS2017_64bit(MSVC14.1)。

  1. QT5模块划分和QT4有所不同,需要调整头文件包含,比如QWidget模块已经从QtGUI模块剥离。

需要修改一下 *.pro 为如下:
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

  1. 有些模块已经不存在:

QWSServer:Qt4的程序在嵌入式Linux运行时,需要加入参数“-qws”启动Qt窗口系统服务,如“./app -qws”运行app程序。从Qt5.0开始,Qt自身不再单独实现窗口系统,QWS不复存在,取而代之的新机制是QPA(Qt平台抽象),QPA使得Qt对不同平台的支持变得更加灵活,当需要支持一个新平台时,只需为该平台编写一个QPA插件。

目前关注这些,实际情况可能会遇到更多问题。

  • 三方库
  1. Boost 1_50_0
  2. Glog 0.3.5
  3. Qscintilla_gpl_2_10_8
  4. Sqlitecipher(OpenSSL 1.0.2 windows)_windows_master

版本信息根据实际情况调整。

四、重点功能

4.1网络通讯

目前QNetWorkProxy模块是基于st_asio_wrapper开发的,而st_asio_wrapper是一个c/s网络编程框架,基于对boost.asio的包装,目的是快速的构建一个c/s系统;从boost.asio继承而来,只支持tcp和udp协议。移植难点如下:

(1)Boost本身是跨平台,所以可以移植到windows,需重新编译相关库并测试;

(2)模块中依赖的sys/types.h ,net/if.h ,sys/ioctl.h 等linux系统文件需要考察替代文件和相应库,否则只能自己实现,或者通过qt实现:

①ifreq结构定义在/usr/include/net/if.h,用来配置ip地址,激活接口,配置MTU等接口信息的。其中包含了一个接口的名字和具体内容(是个共用体,有可能是IP地址,广播地址,子网掩码,MAC号,MTU或其他内容)。ifreq包含在ifconf结构中。而 ifconf结构通常是用来保存所有接口的信息的。

替代:ifreq可以用NCB代替,需包含windows.h,并在使用处更改结构内容。

②int ioctl(int fd, unsigned long cmd, void *data)方法在sys/ioctl.h中。第一个参数是文件描述符,第二个参数代表传递的命令,它会原样传递给驱动,第三个参数是可选类型的,主要根据第二个参数选择,第三个参数无论是整数还是指针,都会以unsigned long的形式传递给驱动程序。

替代:暂未找到。

综上,通过替换系统依赖的方法解决并不简单,且改动量较大,而QT自带QNetWorkProxy类能够更方便的实现网络通讯,且完全支持跨平台,便于以后的跨平台代码管理,研究后决定使用QT自带QNetWorkProxy类重新实现网络通讯模块。

4.2 NFS挂载

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

  1. windows使用NFS功能需要手动安装NFS服务,安装过程可参考https://jingyan.baidu.com/article/0a52e3f4dc3f4abf63ed7259.html,但是windows10家庭版无法安装,所以尽量使用windows7。
  2. 目前使用的FILE *vpopen(const char* cmdstring, const char *type, int timeout_ms)函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行挂载命令。需要找到在windows中的替代。

替代:windows中的_DCRTIMP FILE* __cdecl _popen( _In_z_ char const* _Command,_In_z_ char const* _Mode )函数可实现相同功能。需要包含stdio.h,stdlib.h两个头文件。

QT4升级QT5调研报告相关推荐

  1. 转从Qt4 到Qt5的变化

    QT4 升级到 QT5 改动: PC部分: [改 QTDIR 变量] 在工程根目录下找到 .user 文件 ,  如 InnoTabPlugin.vcxproj.user 修改指向你的 QT5 根目录 ...

  2. 中国CMOS图像传感器行业运行状况与应用前景调研报告2022版

    中国CMOS图像传感器行业运行状况与应用前景调研报告2022版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年11月 [搜索 ...

  3. 中国太阳能热水器市场营销模式探析与品牌格局调研报告2022版

    中国太阳能热水器市场营销模式探析与品牌格局调研报告2022版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年11月 [搜索鸿 ...

  4. 全球及中国特斯拉产业销量预测及投资机遇调研报告2021-2027年

    全球及中国特斯拉产业销量预测及投资机遇调研报告2021-2027年 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年10月 [ ...

  5. 全球及中国航空发动机市场动态前景及十四五项目专项调研报告2021-2027年版

    全球及中国航空发动机市场动态前景及十四五项目专项调研报告2021-2027年版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订 ...

  6. 【CentOS Linux 7】【Linux系统及应用---调研报告】

    Linux系统及应用---调研报告 [CentOS Linux 7]实验1[VMware安装.新建虚拟机:63个基础命令运行结果图] [CentOS Linux 7]实验2[Shell编程及应用] [ ...

  7. 2018年手机摄像头模组市场调研报告

    2018年手机摄像头模组市场调研报告 进入2018年,全球重点品牌大幅拓展双摄像头,从旗舰机型到中低端机型的持续渗透,令双摄手机渗透率远超预期.而最新的小米8.OPPO find X更是采用了3D感测 ...

  8. 工业机器人维保调查表_《工业机器人系统集成及维护》课程建设调研报告

    <工业机器人系统集成及维护>课程建设调研报告 刘东海 ,蒋思中,彭宇林 [摘 要] 摘要:随着"工业 4.0"的发展,国家大力推进以机器人为核心的高 端制造产业的发展, ...

  9. 计算机显卡调研,75%以上的人都想换显卡! MC调研报告告诉你吃鸡“帧”香

    原标题:75%以上的人都想换显卡! MC调研报告告诉你吃鸡"帧"香 前段时间,我们用实际的测试结合NVIDIA实验室的数据分析验证了高帧率在 "大逃杀" 类游戏 ...

  10. 全球及中国企业社交网络行业渠道营销分析及市场全面调研报告2021-2027年

    全球及中国企业社交网络行业渠道营销分析及市场全面调研报告2021-2027年 [修订日期]:2021年10月 [搜索鸿晟信合研究院查看官网更多内容!]  第一章 企业社交网络相关概述  1.1 社交网 ...

最新文章

  1. Cisco H3C 端口汇聚互联
  2. surf三维画图[matlab]
  3. 如何合理使用 CPU 管理策略,提升容器性能?
  4. 全球及中国便携式卧式空压机行业前景动态与投资趋势分析报告2022版
  5. MySQL binlog和redo/undo的概念
  6. 常用Smarty变量操作符
  7. HiveSQL高级进阶技巧
  8. 2021-2025年中国电弧火花发射光谱仪行业市场供需与战略研究报告
  9. Kubernetes支持有状态服务的部署
  10. python 条件语句且_python 条件语句
  11. 自己整理的Linux指令全集,附思维导图(适合刚入门的看),顺带命令大全网址方便查找指令
  12. TiDB-explain详解
  13. android8.0 桌面图标适配
  14. HTB_Responder 综合靶机 菜菜被虐现场实录
  15. 25个常用的防火墙规则
  16. mysql 自连接与内连接
  17. 航向姿态参考系统与惯性测量单元的联系与区别
  18. 学校计算机房管理软件,【学校计算机房管理技巧】 学校云机房
  19. 计算机管理员基础知识,计算机网络管理员(基础知识)
  20. 我心中的计算机作文500,我心中的阳光作文500字4篇

热门文章

  1. Rust : channel、多线程与 CTP相关机制的模拟
  2. 商业和监管中的人工智能 / 林丽丽
  3. 不懂投资的基金会计不是好的产品经理
  4. 资深技术专家张荣华:架构的方法论
  5. 阿里云解决方案架构师徐翔:云上安全建设实战
  6. php输出单行,file - php如何随机输出文件内一行?
  7. 【图像分割】基于matlab遗传算法优化K聚类图像分割【含Matlab源码 1605期】
  8. 【路径规划】基于matlab模拟退火优化遗传算法求解避障路径规划问题【含Matlab源码 889期】
  9. 【幅度调制】基于matlab GUI语音幅度调制【含Matlab源码 292期】
  10. 【图像隐写】基于matlab GUI DWT与SVD数字水印 【含Matlab源码 253期】