本组件主要实现常用的C++功能。
主要用于一般编程,主要依赖标准C++运行库(如线程、锁等),通常运行于Windows、Linux等支持完整C++运行库的操作系统,一般不支持RTOS(一般不支持完整的标准C++库,某些组件不可用)。
主要支持32位及更高位宽的通用硬件平台:
- 32位通用硬件平台
- 64位通用硬件平台
通用硬件平台一般安装有操作系统,包括但不限Windows、Linux等
本章节所指宏定义主要指用户传递的宏定义,并非组件内部的宏定义。
宏定义通常是通过编译器命令行参数传递的,也可能是编译器预定义的,也可通过特殊的头文件(如config.h)定义。
不同的宏定义将触发不同的行为。
宏定义 | 说明 | 备注 |
---|---|---|
HAVE_SDL |
为1时表示外部有SDL(1.x)库,某些组件将使用SDL。 | 一般由HCPPGui组件使用 |
HAVE_SDL2 |
为1时表示外部有SDL2库,某些组件将使用SDL2。 |
本章节的变量主要指CMake中的相关变量,一般由用户设定而非CMake内部变量。
变量仅当使用CMake进行构建时有效。
变量名 | 说明 | 备注 |
---|---|---|
HCPPBOX_USE_PURE_CPLUSPLUS |
当此变量被定义时,将不主动链接第三方库。此变量常用于可能出现冲突的场景,用户需要使用SDL2,而本组件却链接了SDL(1.x)。 | 定义同名的环境变量效果相同。 |
本组件一般用作其它组件的基类,提供一些基础的功能。
功能如下:
- 通过重载operator new与operator delete实现对变量是否在堆上分配的判断
- 提供数据类型模板。
- 可创建对象树(父对象与子对象),当父对象被删除时自动删除在堆上分配的子对象。
-
HCPPObject.cpp
-
HCPPObject.h
本组件主要提供一些全局指针的存储。注意:用户需要自行处理指针的有效性。
功能如下:
- 提供一个对象池用于使用字符串访问对象指针。
- HCPPObjectPool.cpp
- HCPPObjectPool.h
本组件主要对标准C++库的线程进行一定封装,使其可用作可执行对象的父对象,并使其自动执行。
- HCPPThread.cpp
- HCPPThread.h
采用线程实现的定时器(非精确定时)。
- HCPPTimer.cpp
- HCPPTimer.h
辅助实现动态注册初始化函数且按照一定顺序初始化。
- HCPPInit.cpp
- HCPPInit.h
测试嵌入式GUI,非通用GUI框架。
此组件主要依赖以下第三方库:
- SDL:用于创建显示窗口,默认使用SDL1,Debian系Linux可使用
sudo apt-get install libsdl-dev
安装sdl1.2库。
- HCPPGui.cpp
- HCPPGui.h