布吉附近网站建设,在线考试网站开发,aws wordpress ssl,盐城哪家做网站的正规最近在移植公司一个QT桌面软件到android上#xff0c;有一些公司自定义的库#xff0c;用了很多windows的api#xff0c;移植过程很是曲折#xff0c;在此有一些感悟分享一下~
一.自编写跨平台库
1.有时候为了程序给第三方用需要编译一些qt封装库#xff0c;并可能跨平台… 最近在移植公司一个QT桌面软件到android上有一些公司自定义的库用了很多windows的api移植过程很是曲折在此有一些感悟分享一下~
一.自编写跨平台库
1.有时候为了程序给第三方用需要编译一些qt封装库并可能跨平台使用比如会在windows桌面系统、linux系统及android系统使用所以在开始写的时候最好不要用windows本身的api不然跨平台移植的时候全部要更换非常麻烦
比如下面这些文件的接口
#include direct.h
#includewinsock2.h
#includewindows.h 2.尽量要用POSIX标准c或者标准c接口如POSIX线程pthreads网络接口尽量用纯c语言编写这样方便跨平台移植 POSIX标准全称为“可移植操作系统接口”(Portable Operating System Interface)是由IEEE计算机学会制定的一系列标准旨在提高不同操作系统之间的兼容性。
许多操作系统包括Unix、Linux以及某些版本的Microsoft Windows都支持POSIX标准。 3.下面举一个简单的sleep函数例子如果用POSIX标准c的sleep函数在windows和android都可以用不用修改在qt也是一样
1代码
include mainwindow.h
#include ui_mainwindow.h #include unistd.h #include QDebug
#include QDateTime #define SleepKK(x) usleep(x*1000) //微秒
#define SleepSS(x) sleep(x) MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow)
{ ui-setupUi(this); qDebug()time print; qDebug() Current_date_and_time start: QDateTime::currentDateTime(); SleepSS(1); qDebug() Current_date_and_time start_1: QDateTime::currentDateTime(); SleepSS(10); qDebug() Current_date_and_time start_2: QDateTime::currentDateTime(); SleepKK(5000); qDebug() Current_date_and_time start_3: QDateTime::currentDateTime();
} 2结果 二.QT延时五种实现方法
QT下是没有直接可用的延时sleep函数的但有时候后需要延时所以需要自己定义一个延时函数方法有多种具体见之前文章《QT延时五种实现方法》
https://blog.csdn.net/xieliru/article/details/135435815?spm1001.2014.3001.5502