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