本 GitHub 仓库没有上传 lib 和 dll 等二进制文件,因此请下载安装发布版模块
下载地址:https://saier.lanzoul.com/b016cwvle
在线更新:火山平台升级工具 by 仰望
安装本模块前,必须将 火山软件开发平台 更新到最新版本,及时安装论坛的更新包才是最新版。
本模块部分功能需要 VS 2017 以上才能编译使用。
现在提供两种形式的安装包:
-
模块本体的安装包。
火山自身的模块安装包格式,双击
.vcip
文件即可打开火山程序进行安装,但压缩率比较低。如果安装失败,请对火山主程序按鼠标右键打开「属性」,勾选「兼容性」选项卡里的「以管理员身份运行此程序」。
-
由于部分静态库文件太大,而且不会经常更新,所以另外用 7z 格式压缩。
请手动解压安装到
火山目录\plugins\vprj_win\classlib\user\piv\
本模块总共有两个子模块,子模块之间功能不重叠,主要是收录标准有以下差别:
-
PIV基础类
除了视窗基本类,不依赖其他任何模块。
-
PIV扩展类
会依赖部分官方模块,但不会依赖界面库和其他第三方模块。
本模块封装遵从以下标准:
-
不重复造轮子
核心库已有的功能,如果没有可明显改进的地方,不会重复封装。
-
开源
所有封装的代码均公开源码。
-
效率优先
以执行效率为优先,基本使用C++和嵌入式语法封装。
-
源码编译
能直接用源码编译的库,就不会编译成 dll 再封装,缺点是会增加编译耗时,如果其他代码出错,可能会一下子蹦出大量报错。
-
面向对象
关联性的功能封装成类,以类实例使用。除了常用命令,尽量减少使用全局类,以「类名.静态方法」调用,减少同名冲突。
-
解耦减少不同类库之间的互相依赖,能以最小的代价把类库抠出来单独使用。随着基础功能的广泛应用,类库之间耦合度增大,已经难以解耦了。
我也不知道,作为起名废,这名称是沿用了我注册的一个域名,而当初注册这三个字母域名的时候,拼凑的思路上比较靠近 pic、pixiv。
有人说 PIV 是 VIP 的取反,虽然不是我本意,但这的确很恰当,因为PIV模块会一直免费开源。
本模块已有一定的历史,一些早期功能已经不合时宜,但为了兼容用户较早前写的源码,我一直有保留
为了让用户尝试新的东西,所以从 2023/07 版开始,我通过火山的条件编译功能屏蔽了一些过时功能
如果你有旧源码不想改的话,请在项目属性的「编译时预定义宏」中添加 PIV_ENABLE_OBSOLETE
详细的更新日志,请看 完整文档
- nlohmann JSON
3.11.3
MIT license
现代 C++ 的 JSON 库 - fmtlog
2.2.1
MIT license
纳秒级精度的高性能异步日志记录库 - {fmt}
10.2.0
MIT license
格式化文本库,等同 C++20 std::format 的实现 - md4c
0.4.8
MIT license
CommonMark 0.30 规范 + GFM 的 Markdown 解析库 - simpleini
4.20
MIT license
简易的 INI 配置文件读写库 - simdutf
5.2.8
Apache-2.0, MIT license
使用 SIMD 指令集加速,每秒数十亿字符的Unicode编码验证和转换库 - OpenCC
1.1.6
Apache-2.0 license
中文简繁转换开源项目,支持词汇级别的转换、异体字转换和地区习惯用词转换 - 7-zip
24.05
GNU LGPL license
免费的高压缩率开源压缩软件(采用GNU LGPL协议,只使用它的 dll 文件不会传染) - bit7z
4.0.7
Mozilla Public License v2.0
7-zip 的封装类 - MinHook
1.3.3
BSD-2-Clause License
极简的 x86/x64 API Hook 库 - MMKV
1.3.5
BSD-3-Clause License
腾讯开源的高效键值对存储框架 - xxHash
8.0.2
BSD-2-Clause License
速度接近 RAM 限制的高速散列算法 - Dear ImGui
1.90.8
MIT license
轻量级的即时渲染界面开发框架 - GLFW
3.3.8
zlib/libpng license
跨平台的 OpenGL/Vulkan 桌面应用框架 - glad
2023-04-04
MIT License
多语言的Vulkan/GL/GLES/EGL/GLX/WGL加载程序生成器 - SDL
2.26.5
Zlib license
Simple DirectMedia Layer 是一个跨平台的多媒体开发库 - Vulkan SDK
1.3.246.1
Apache-2.0
一个跨平台的2D和3D绘图应用程序接口 - libgo
3.0
MIT license
Golang 风格的 C++11 协程库
※本模块封装的开源项目均采用较宽松的开源协议,如 MIT、BSD、MPLv2 ……
本模块封装了以下闭源项目: