一、Qt开发库
Qt 是一个跨平台的 C++ 应用程序开发框架,广泛用于开发图形用户界面(GUI)应用程序,同时也支持非图形的开发工作,如网络、数据库、线程等功能。它的主要开发库包括以下几个模块:
1.QtCore
提供核心的非GUI功能,包括事件处理、字符串、日期时间、文件、I/O处理、多线程、定时器等。它是Qt应用的核心基模块。
- QCoreApplication:基础的应用管理类。
- QTimer:定时器类。
- QString:字符串处理类。
2.QtGui
提供了图形用户界面的功能,包括 2D 图形渲染、字体、图片、以及一些基本的窗口管理组件。
- QPainter:用于绘图的类。
- QImage:处理图片的类。
- QFont:管理字体的类。
3.QtWidgets
提供了构建桌面应用程序的用户界面组件,例如按钮、标签、文本输入框等。
- QPushButton:按钮类。
- QLabel:标签类。
- QLineEdit:文本输入框类。
4.QtNetwork
提供了用于网络编程的功能,包括 TCP、UDP、HTTP 等协议的支持。
- QNetworkAccessManager:处理 HTTP 请求和响应。
- QTcpSocket:用于创建 TCP 连接。
- QUdpSocket:用于创建 UDP 连接。
5.QtMultimedia
提供了处理多媒体内容的功能,包括音频、视频播放、摄像头支持等。
- QMediaPlayer:用于播放音频和视频。
- QCamera:用于访问和控制摄像头。
6.QtSql
提供与数据库相关的功能,支持多种数据库管理系统(DBMS)如 SQLite、MySQL、PostgreSQL 等。
- QSqlDatabase:管理数据库连接。
- QSqlQuery:用于执行 SQL 查询。
- QSqlTableModel:用于显示数据库表数据的模型类。
7.QtConcurrent
提供了简化多线程操作的功能,可以轻松地在多个线程之间处理并行任务。
- QtConcurrent::run:并行执行函数的工具。
- QFuture:表示异步操作的结果。
8.QtQuick / QML
提供了使用 QML 语言进行快速开发现代化用户界面的功能,特别适合用于移动应用或嵌入式系统的开发。
- QQuickView:加载 QML 文件并显示它们。
- QML:一种描述用户界面的声明式语言。
二、Linux标准库
Linux 标准库主要指与 C/C++ 相关的库,特别是 GNU C Library(glibc),它是 Linux 系统上 C 语言程序的标准库实现,并且是很多系统调用和底层功能的封装。以下是 Linux 下常用的标准库及其功能分类:
1.GNU C Library (glibc)
glibc 是 Linux 系统上最常用的 C 库,它实现了标准的 C 语言库函数,并且提供对 Linux 系统调用的封装。
<stdio.h>
,<stdlib.h>
,<string.h>
,<time.h>
,<unistd.h>
等。- 标准输入输出 (
printf
,scanf
,fopen
,fclose
等)。- 字符串操作 (
strcpy
,strlen
,strcmp
,strcat
等)- 动态内存管理 (
malloc
,calloc
,realloc
,free
)。- 时间管理 (
time
,localtime
,strftime
等)。- 系统调用封装 (
fork
,exec
,open
,read
,write
,close
,sleep
,getpid
等)。
2.math.h
math.h
提供了各种数学运算函数,常用于科学计算和数值处理
- 三角函数:
sin()
,cos()
,tan()
- 指数与对数:
exp()
,log()
,log10()
- 幂函数:
pow()
- 其他:
sqrt()
,ceil()
,floor()
3.pthread
POSIX 线程库(pthread)是 Linux 下实现多线程编程的标准库。
<pthread.h>
- 线程创建和管理 (
pthread_create
,pthread_join
)。- 线程同步 (
pthread_mutex_lock
,pthread_mutex_unlock
)。- 线程条件变量 (
pthread_cond_wait
,pthread_cond_signal
)。
4.dlfcn.h
Linux 支持动态加载库的功能,dlfcn.h
是管理动态链接库的库。
dlopen()
:打开动态库。dlsym()
:获取动态库中的符号(函数或变量)。dlclose()
:关闭动态库。
5.signal.h
提供处理和发送信号的函数,用于控制进程间通信或异常处理。
SIGINT
:键盘中断(Ctrl + C)。SIGTERM
:终止进程信号。SIGKILL
:强制终止进程信号。signal()
:设置信号处理函数。raise()
:发送信号给当前进程。
6.fcntl.h
fcntl.h
提供文件控制操作,用于改变已经打开的文件描述符的属性。
fcntl()
:设置文件描述符的属性,例如非阻塞模式 (O_NONBLOCK
) 或读写模式 (O_RDWR
)。open()
:打开文件。
7.unistd.h
unistd.h
提供了对操作系统服务的访问接口,包含 POSIX 标准的系统调用接口。
- 文件操作:
read()
,write()
,close()
- 进程控制:
fork()
,exec()
,getpid()
,getppid()
- 系统管理:
chdir()
,sleep()
,usleep()
8. sys/socket.h
sys/socket.h
提供网络编程的 API,用于创建和管理网络通信的套接字。
socket()
:创建套接字。bind()
:绑定地址到套接字。listen()
:监听连接。accept()
:接受连接。connect()
:连接到远程主机。
9. netinet/in.h 和 arpa/inet.h
这些库是与 sys/socket.h
配合使用的,用于处理网络地址和字节序的转换。
inet_ntoa()
:将 IP 地址转换为字符串。inet_pton()
:将字符串转换为 IP 地址。htons()
/htonl()
:主机字节序转换为网络字节序。
10. sys/stat.h
sys/stat.h
用于获取文件属性,如文件大小、权限等。
stat()
:获取文件的状态信息。chmod()
:更改文件权限。mkdir()
:创建目录。
11. errno.h
errno.h
定义了处理错误码的标准接口,当系统调用出错时,会设置全局变量 errno
。
- 提供错误代码,如
EACCES
,EBUSY
,EEXIST
。perror()
:输出错误信息。
12. setjmp.h
提供非本地跳转的函数,用于异常处理或错误恢复
setjmp()
:保存当前执行环境。longjmp()
:跳转到保存的执行环境。
三、Windows API
Windows API(Windows 应用程序接口)是 Microsoft Windows 操作系统提供的底层接口,允许开发者与系统功能和硬件进行交互。它提供了大量的函数和数据结构,广泛用于桌面应用开发、系统管理、文件操作、进程控制等方面。以下是 Windows API 的主要功能模块及其应用:
1.Windows 基础服务 (Windows Base Services)
这些服务提供了操作系统的核心功能,如文件管理、内存管理、设备控制等。
CreateFile()
:创建或打开文件。ReadFile()
:从文件读取数据WriteFile()
:将数据写入文件。CloseHandle()
:关闭文件句柄。VirtualAlloc()
:分配虚拟内存。VirtualFree()
:释放虚拟内存。GlobalAlloc()
:分配全局内存。GlobalFree()
:释放全局内存。DeviceIoControl()
:对设备发出控制命令。
2. 图形设备接口 (GDI)
GDI 提供了用于在屏幕或打印机上绘图的函数,包括处理图形、文本、图像等。
CreateDC()
:创建设备上下文。MoveToEx()
:移动当前绘图光标位置。LineTo()
:绘制直线。Ellipse()
:绘制椭圆形。TextOut()
:在设备上下文中输出文本。CreateFont()
:创建字体对象。SelectObject()
:选择设备上下文中的 GDI 对象。CreateCompatibleBitmap()
:创建与设备上下文兼容的位图。BitBlt()
:进行位图的位块传输(拷贝图像)。
3. 用户界面管理 (User Interface Services)
这些 API 负责管理 Windows 的图形用户界面(GUI),包括窗口、消息处理、对话框等。
CreateWindowEx()
:创建一个窗口。ShowWindow()
:显示或隐藏窗口。DestroyWindow()
:销毁窗口。GetMessage()
:从消息队列中获取消息。DispatchMessage()
:分发消息给相应的窗口过程。TranslateMessage()
:将虚拟键消息转换为字符消息。SendMessage()
:同步发送消息到窗口。CreateMenu()
:创建菜单。AppendMenu()
:在菜单中添加菜单项。DialogBox()
:创建模式对话框。MessageBox()
:显示消息框。
4. Shell API
提供与 Windows Shell 交互的函数,用于处理桌面、任务栏、文件系统等相关任务。
SHFileOperation()
:复制、删除、移动或重命名文件/文件夹。SHGetSpecialFolderPath()
:获取特殊文件夹的路径,如桌面或文档文件夹。Shell_NotifyIcon()
:向系统托盘添加图标。
5. 进程与线程管理 (Process and Thread Management)
这些函数用于创建和管理进程、线程、同步对象。
CreateProcess()
:创建一个新进程。TerminateProcess()
:终止进程。GetCurrentProcessId()
:获取当前进程 ID。CreateThread()
:创建一个线程。TerminateThread()
:终止线程。WaitForSingleObject()
:等待线程、进程或同步对象的状态变化。
CreateMutex()
:创建一个互斥量对象。
CreateSemaphore()
:创建信号量。
EnterCriticalSection()
:进入临界区。
6. 网络服务 (Networking Services)
这些 API 用于在 Windows 上进行网络通信,支持套接字、HTTP 等协议。
socket()
:创建一个套接字。connect()
:与远程主机建立连接。bind()
:将套接字绑定到本地地址。send()
:发送数据到套接字。recv()
:从套接字接收数据。InternetOpen()
:初始化应用的使用 Internet 功能。InternetConnect()
:连接到远程服务器。HttpOpenRequest()
:创建 HTTP 请求句柄。HttpSendRequest()
:发送 HTTP 请求。
7. 注册表操作 (Registry Services)
注册表 API 用于访问和操作 Windows 的注册表,存储系统和应用程序的配置信息。
RegOpenKeyEx()
:打开注册表键。RegQueryValueEx()
:查询键值数据。RegSetValueEx()
:设置键值数据。RegCloseKey()
:关闭注册表键。
8. 安全与访问控制 (Security and Access Control)
提供了控制系统资源的访问权限和用户身份验证的函数。
AdjustTokenPrivileges()
:调整进程令牌中的权限。OpenProcessToken()
:获取进程的访问令牌。SetFileSecurity()
:设置文件的安全描述符。CryptEncrypt()
:加密数据。CryptDecrypt()
:解密数据。CryptGenKey()
:生成加密密钥。
9. 多媒体服务 (Multimedia Services)
Windows API 提供了用于播放音频、视频、处理图像的多媒体服务。
mciSendString()
:发送 MCI 命令来控制音频和视频设备。- DirectX 是一个用于多媒体和游戏开发的 API 集合,包含 Direct3D(3D 图形)、DirectSound(音频处理)等。
10. 时间和计时器 (Time and Timer Services)
Windows 提供了精确的时间管理 API,用于获取系统时间或设置定时器。
GetSystemTime()
:获取系统时间。GetLocalTime()
:获取本地时间。SetSystemTime()
:设置系统时间。SetTimer()
:设置定时器。KillTimer()
:关闭定时器。
11. 系统信息和配置 (System Information and Configuration)
用于获取系统配置和硬件相关的信息。
GetSystemInfo()
:获取处理器架构、页面大小、内存信息等。GetVersionEx()
:获取操作系统的版本信息。GlobalMemoryStatusEx()
:获取系统内存状态。