说在前面,个人觉得PIV模块还是非常的不错的!!能学习到大量的火山知识!
火山视窗 - PIV模块
作者: Xelloss
网址: https://piv.ink/volpiv
Github: https://github.com/SaierMe/piv
邮箱: xelloss@vip.qq.com
公告
之前我单独公开了几个库,维护起来甚是麻烦,现在我把自用的模块整理分享出来,以后有什么新功能,基本就在这里更新了。
如果遇到bug和模块冲突,欢迎找我报错,最好带上例子。
安装
下载地址:https://saier.lanzoul.com/b016cwvle
本模块部分功能需要 VS 2017 以上才能编译使用。
现在提供两种形式的安装包:
-
火山模块安装包 [.vcip]
模块本体的安装包。
火山自身的模块安装包格式,双击 .vcip
文件即可打开火山程序进行安装,但压缩率比较低。
如果安装失败,请对火山主程序按鼠标右键打开「属性」,勾选「兼容性」选项卡里的「以管理员身份运行此程序」。
-
静态库文件 [.7z]
由于部分静态库文件太大,而且不会经常更新,所以另外用 7z 格式压缩。
请手动解压安装到 火山目录\plugins\vprj_win\classlib\user\piv\
简介
本模块总共有两个子模块,子模块之间功能不重叠,主要是收录标准有以下差别:
PIV静态库已经合并到PIV基础类,请自行删除旧源码的相关模块配置
本模块封装遵从以下标准:
-
不重复造轮子
核心库已有的功能,如果没有可明显改进的地方,不会重复封装。
-
开源
所有封装的代码均公开源码。
-
效率优先
以执行效率为优先,基本使用C++和嵌入式语法封装。
-
源码编译
能直接用源码编译的库,就不会编译成 dll 再封装,缺点是会增加编译耗时,如果其他代码出错,可能会一下子蹦出大量报错。
-
面向对象
关联性的功能封装成类,以类实例使用。除了常用命令,尽量减少使用全局类,以「类名.静态方法」调用,减少同名冲突。
-
解耦
减少不同类库之间的互相依赖,能以最小的代价把类库抠出来单独使用。
随着基础功能的广泛应用,类库之间耦合度增大,已经难以解耦了。
PIV 是什么意思?
我也不知道,作为起名废,这名称是沿用了我注册的一个域名,而当初注册这三个字母域名的时候,拼凑的思路上比较靠近 pic、pixiv。
有人说 PIV 是 VIP 的取反,虽然不是我本意,但这的确很恰当,因为PIV模块会一直免费开源。
关于过时功能
本模块已有一定的历史,一些早期功能已经不合时宜,但为了兼容用户较早前写的源码,我一直有保留
为了让用户尝试新的东西,所以从 2023/07 版开始,我通过火山的条件编译功能屏蔽了一些过时功能
如果你有旧源码不想改的话,请在项目属性的「编译时预定义宏」中添加 PIV_ENABLE_OBSOLETE
更新日志
※我经常修改现有的代码,比如修正bug、优化效率、规范格式、修订备注等……如果功能和用法没有改变,一般不会写在更新日志里,所以每次更新改动的地方其实还是有不少的。
2024/11/12
-
优化和修正 YYJSON,减少内部智能指针的引用次数;
-
使用 MSVC 2017 重新编译了 bit7z 的静态库;
(bit7z 4.0.8 通过禁用文件流的缓冲区,提升了压缩和解压性能,但有人反馈升级后速度非常慢。看了源码的后续更新,原来是 MSVC 2015 禁用文件流缓冲区后会变得非常缓慢,需要改用 MSVC 2017 重新编译)
-
其他优化;
2024/10/24
- 新增「YYJSON值」、「YYJSON只读值」以及相关辅助类型和常量;
- 新增全局方法「提交到主线程」,其子语句体中的代码将发送到UI主线程执行,方便在线程中操作界面;
- 「进程操作类」新增「读内存数值」与「读模块数值」,相比现有的「读内存整数/长整数/小数...」,可以明确返回是否读取成功;
- 「简易HOOK类/多重HOOK类」的方法改为静态,请直接用类名调用方法,而无需定义类变量;
- Imgui 更新到 1.91.4-docking;
- bit7z 更新到 4.0.8,请重新替换静态库文件;
- 修正「正则查找类」;
- 修正「高并发网络访问类」;
- 其他优化;