编译奇兵
文章平均质量分 69
代码盗圣
我爱编程
展开
-
FLV 格式详解资料整理,关键帧格式解析写入库等等
理解一个格式,最好的方式就是用 Java 写个解析转换库。我将之转换为 Java ,添加写入关键帧索引的功能,一切竟然如此简单,宛若拨云见月。原创 2024-09-06 15:06:00 · 748 阅读 · 0 评论 -
【蛋疼c++】千万别用std::wifstream读取Unicode UTF16文件
这说明,程序里面 TCHAR* 字符串就是UTF16编码,不需要 std::wifstream 多此一举地解码,直接读取到内存即可。一些特殊表情符号直接空白(比如:🍓)。或许是,这个办法不支持UTF16的surrogate pair,四个字节的符号。ActiveX这玩意,导出文件,如果是UTF8导出,会出现莫名异常:写一半直接退出。在C++程序中,UTF8文件直接用 stf::ifstream 读进来就可以。原创 2024-08-10 11:56:54 · 393 阅读 · 0 评论 -
【前端逆向】最佳JS反编译利器,原来就是chrome!
Vscode 里面有一些反编译插件,某某Beautify等等。但这些插件看人品,运气不好搞的话,反编译出来都无法运行。此时就需要去反编译Javascript。如果嫌麻烦,还可以用VSCODE配合AHK制作成半自动反编译流程。要说对 Javascript 最了解的,那当然就是其源代码的维护者、开发者。现如今浏览器时代,Javascript 本家可以说就是 chrome。恰好 chrome 自带各种开发工具。有些把可选链断开了,有些格式化去掉了关键格式,导致出错。有时候需要反编译别人的 min.js。原创 2024-07-28 13:35:13 · 1407 阅读 · 0 评论 -
Intellij IDEA / Android studio 可持续开发笔记
Intellij 的Java/安卓工具链有着一种不可持续性,这种不可持续性体现在多个方面。首先是不可持续运行。IDEA 使用时间越长,内存占用越大,从不主动释放。运行时间越长,日志越多,从不主动清理。然后是不完整的开源,从源码编译时需要下载更多依赖。而研究更多依赖就要消耗更多的精力与资源……原创 2024-03-30 19:50:55 · 1346 阅读 · 0 评论 -
vscode 运行 java 项目之解决“Build failed, do you want to continue”的问题
安装好官方推荐的 java 扩展包后,就可以运行 java 代码了。功能 比 code runner 强,支持 gradle、maven、普通java项目,运行起来和真正的ide差不多,可以调试。需要整个项目编译起来,然后运行。因为vscode界面基于electron,而electron本质上就是chrome浏览器,而浏览器的界面外观都是可以更改的 —— 通过自定义用户脚本、用户样式的形式。与 eclipse 一样,支持部分代码出错的情况下运行其余完好的代码,于是就可以像脚本一样使用java了。原创 2024-03-15 19:38:31 · 1196 阅读 · 1 评论 -
【浅谈IDE宏指令录制】为加速chrome扩展国际化,我从vscode回归notepad++
安装vscode开源扩展:https://github.com/C10udburst/macros-vscode.git可开启类似于 notetepad 的宏录制与回放功能!可能需要新版本的 vscode 才能安装。如果不想切换,也可以专门下载个 cursor 编辑器,这是 openai 的vscode 分支,还能免费问gpt问题、缺点是,只能录制当前标签页,一切换就停止录制。原创 2023-10-07 18:51:37 · 940 阅读 · 0 评论 -
AHK c++ 禁用鼠标设备实现完美息屏(不是休眠)
如何实现完美息屏呢?虽然可以用ahk实现息屏,但桌子一晃,鼠标稍微偏移一下,竟然又亮了,导致息屏无效!现在提供一种AHk脚本结合c++代码的方法,实现完美息屏!原创 2023-09-24 16:37:21 · 463 阅读 · 0 评论 -
让 exoplayer2 支持播放 ftp ( 扩展 exoplayer 支持 ftp 协议 ) 的两种方式
exoplayer 是安卓开源播放器组件库,由谷歌开发维护。它提供了一个可高度扩展的音视频播放框架,支持许多媒体格式与高级媒体功能,比如 adaptive streaming,DRM,以及安卓 media session 集成。但是不支持 ftp ,有两种方式可以扩展 exoplayer 支持 ftp 协议。原创 2023-08-22 13:31:09 · 685 阅读 · 0 评论 -
ffmpeg 子进程从内存读取文件、提取图片到内存
除了网络、文件io,开启的ffmpeg子进程还支持pipe,可以从stdin读入数据,输出转化后的图像到stdout。无需编译 ffmpeg,直接调用 ffmpeg.exe。可用于服务端生成缩小的预览图,然后发给ftp客户端,传输较快。原创 2023-08-22 12:36:49 · 1832 阅读 · 0 评论 -
【KBrowser】基于 Kiwi/chromium 制作全新外壳,将 chromium 代码当作 webview 使用,实现可控核替换
chromium 其实只需几步巧妙的架构,就能拿来“换核”,甚至可以插件化,实现类似webview.apk 的效果。重新设计界面,不再是差不多的回声。而 Kiwi 基于 chrome 77 ,只有 50 MB。优势是兼容好、可安装扩展。原创 2023-07-30 11:37:56 · 989 阅读 · 0 评论 -
gradle mavenPublish 切换不同源码,根据不同的代码 flavor 生成并发布不同分支的 aar 库
本例定义了两个flavor:normal 、dragsort ,其维度为 "listpopup",意即…… 最后,需要告诉 maven Publish 插件:要用 components 指定打包内容 ……原创 2023-04-16 19:58:18 · 398 阅读 · 0 评论 -
Idea和Android Studio【插件】全局自动设置代码高亮级别为 Syntax
本文介绍一种使用插件完成类似目的的方法 —— 通过开发idea插件,将默认的 highlighting level 设为 Syntax,如需要重新 inspect all problem,则将鼠标移动至滚动条上方,等待弹出小型设置窗口,将 syntax 下拉菜单改成 all problem 即可(见视频中的操作)。不过这样设置对于已经打开的文件时无效的,不会触发重新分析,无法自动动态设置,只能用作默认值,在新开idea窗口、双击打开代码文件时起作用。网上已有一些全局设置的方法,比如inspect设置中,原创 2023-04-05 17:58:35 · 2705 阅读 · 0 评论 -
win10 设置侧载默认程序之借尸还魂 —— ahk 命令行转接脚本,ahk成为命令行拨号员
最近发现无法设置explorer的默认打开方式了,原来能设置成某一路径,使用绿色软件或者portable很方便,现在只能从安装好的程序中选择。干掉potplayer.exe,用run.exe替换,将run.exe重命名为potplayer.exe!写一个ahk脚本,功能是,接收命令行参数,并以相同参数启动自己的player.exe。其实可以利用ahk“借尸还魂”之法,将已安装的程序干掉,变成自己的程序。怎么办的,辛辛苦苦开发出来的媒体播放器,上传商店还要交700年费……将shk脚本编译成run.exe。原创 2023-03-29 22:08:31 · 477 阅读 · 1 评论 -
程序员的chatgpt —— cursor 编辑器
回答比较简单(and more),还需查文档:https://learn.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataa。这个编辑器本身的功能还比较简单,比如无法设置主题色。请对fileArr中的字符串进行自定义排序,当遇到中文字符时,用拼音进行排序。尼玛给的链接根本就是404,hongwenjun却是真有其人,不知怎么的。不用 std::sort ,请对fileArr中的字符串进行自定义排序。原创 2023-03-28 13:52:54 · 2879 阅读 · 0 评论 -
Jvm invocation api 调试总论
Jvm invocation api 允许 c++ 程序内嵌虚拟机,运行 Java 代码。这一块的调试还是比较麻烦的。原创 2023-03-05 15:48:58 · 468 阅读 · 0 评论 -
visual studio 调试增强,实现一行代码打印调用栈
VisualStudio 如何主动打印调用栈?如果不下断点,那么只能在崩溃的时候被动查看。快使用Backward-Cpp,只需在拖入一个头文件,就可以主动打印。但默认无法在 VisualStudio 的 output 窗口看到任何信息,且格式较为零散,下面分享一些强化的方法。原创 2023-02-01 19:13:05 · 912 阅读 · 0 评论 -
visual studio 必装插件,码c++等必备
分享一些vs插件。必装三件套,虽简单但是没有真的不行,然后用ahk来锦上添花篇 ,最后考察他山之石。原创 2023-01-27 13:01:08 · 10346 阅读 · 0 评论 -
Jitpack使用指南:maven-publish如虎,jitpack如翼 【安卓Java组件化模块化】【更多gradle技巧】
上文整理了三种多模块开发的方法。我的第一个开源项目就依次用过,如今更是如虎添翼。原创 2023-01-17 17:07:08 · 1894 阅读 · 0 评论 -
【脚本资源】巧用 FFMEPG 为Android Studio制作提示音,用音乐舒缓压力
截取前两秒项目构建成功的提示音,是一种开放的感觉,open feeling,心胸开阔,开启无限可能。反转后作为构建失败的提示音,别有旋律,是一种幽然的警报声,紧张中带有诙谐感,开始无限调试。原创 2022-12-16 15:31:08 · 504 阅读 · 0 评论 -
将“万词王”离线转化为“文络之心“插件之一:复现 wantwords Python/Pytorch 开源项目
本文带你从零探索Wantwords.net,这是个开源的pytorch词典项目。其模型文件也是开放下载的。原创 2022-12-05 11:49:39 · 1308 阅读 · 0 评论 -
Android Studio / IDEA 调试金手指:live template自动打印方法名以及所有变量
需要用到groovyScript,参考第N篇博客至于学会了……原创 2022-11-29 17:45:07 · 857 阅读 · 0 评论 -
【安卓组件化 maven-publish】编译任意Library库至本地maven仓库,自动部署、分模块开发
本文基于Android Studio操作,借助Gradle插件 —— Maven Publish,实现在构建完安卓库或者纯Java库之后,自动将之部署aar或jar至maven仓库,使其成为一个公共模块,供其他项目引用。首先了解一下其他的多模块开发方法。第一种:在setting.gradle中定义子模块然后 api Project(':...')),直接引用 。第二种,部署至远程服务器,如 jitpack.io(傻瓜式操作,还支持gitee)第一种方法适合小库,优点是改动后可一键构建运行,缺点是原创 2022-04-06 15:23:13 · 3794 阅读 · 5 评论 -
编译Github Desktop
GithubDesktop 是个Electron + react 项目。它使用yarn构建。直接下载源码。… --depth=1 --recursive,一百多MB,与程序本身的体积差不多。然后进入目录,命令行yarn,让它配置各种依赖,完成会展开至八百多MB,也不知道都下载了些啥。需要Python3.9、与visual studio 的c++集成环境。这些之前编译vscode时已经做过了。yarn命令却返回错误,说什么dugite下载过程出错。勘察了一下不是GFW的原因,似乎是dugite的脚本有问原创 2022-04-05 21:46:06 · 563 阅读 · 0 评论 -
编译运行与使用安卓文字识别项目
Tesseract 用于从图片中提取文字,准确率不错。https://github.com/adaptech-cz/Tesseract4Android这个项目是直接用Android studio编译c++代码的。模型文件需要自己下载(https://github.com/tesseract-ocr/tessdata),比如英文的模型文件就是https://github.com/tesseract-ocr/tessdata/blob/4.0.0/eng.traineddata,很小,只有二十来兆。下载原创 2022-03-12 16:24:29 · 3885 阅读 · 0 评论 -
沽名钓誉的GPL
在我看来,GPL不应是“通用公有协议”的缩写,所谓的通用性、一般性不过是个笑话,看看我们国家墙内墙外的沽名钓誉之辈吧,写点代码,就贴上GPL,表面上说是给大家用,实际上呢,却是不允许你直接拿去做产品赚钱。就这?还通用?还一般性?公开倒是真的,态度确实很假。打个不太恰当的比方,就是某人声称研制了比杂家水稻还牛的作物种子,但是放弃专利,将培育方法上传到github,声称将此以GPL协议开源给全人类,为全人类谋福祉,但是却不允许任何人直接吃由此种种子、或子代种子种出来的米饭,要吃的话,必须经由他书面批准才行。这算原创 2022-01-28 17:33:37 · 339 阅读 · 0 评论 -
“没有梦想,何必远方”
不能赚钱,何必开发?也许,别人随便建一个色情群都比你赚钱,还是副业。这个世界就是这样,只有灵活善变的人才能很好地适应。原创 2022-01-25 11:56:32 · 183 阅读 · 0 评论 -
自定义Visual Studio Code样式终极解决方案
vscode 编辑器本身的主题可以改,但是条目太多,我要说的不是这个。vscode基于浏览器技术,所以可以注入自定义的css。插件:https://marketplace.visualstudio.com/items?itemName=be5invis.vscode-custom-css插件有问题,无法实时更新,每次修改后需要重启vscode。修改方式:配合chrome与github1s。...原创 2022-01-14 23:15:24 · 911 阅读 · 0 评论 -
visual studio native c++单元测试及输出
单元测试项目,可通过引导对话框创建,在创建常规项目的对话框中,搜索Test,一分钟后,会出现搜索结果,选中其中的 native test,创建单元测试项目。创建完成后,自动生成模板代码,照着写即可。默认的代码生成方式为动态生成,可切换。可以像常规项目那样引入各种静态库、设置临时文件目录以及输出目录等,最终生成的是一个dll文件,不能直接运行,需要在单元测试列表中运行,或者可以右击代码->run tests。不要在链接器的设置页面修改输出目录,否则,如果link输出目录与项目输出目录不匹配,运行单原创 2021-10-05 13:06:45 · 1027 阅读 · 0 评论 -
关于 C++ 头文件二三事
头文件不直接参与编译,而是与cpp文件一同编译。用别人的话来说,类似于复制粘贴。预编译头文件可以加快编译速度。在visual studio中,通常是设置stdafx.h为预编译头文件,stdafx.cpp创建预编译头文件,其他cpp源代码则使用预编译头文件。使用预编译头文件的cpp必须第一个引入stdafx.h。头文件中可以用 __declspec(selectany) 声明全局变量,类似于cpp中的static。可跨越静态库,不跨越动态库。visual studio引入头文件时,可以..原创 2021-10-05 08:12:39 · 313 阅读 · 0 评论 -
编译Skia:结合云端Github Actions与本地Visual Studio
用 Github Actions 云编译JetBrains替Skia项目手工制作了Java和Kotlin绑定,拓展了Java - Graphics2d的绘图功能。他们顺便公开了用于自动构建Skia的仓库[1],基于Github Actions。维护需编写 build.yml[2] 与一些简短的 python 脚本。Fork 一份后,可以修改参数然后部署自动化[3]构建。查看原项目Log可知,构建总耗时52分钟,构建目标包括了mac,安卓,linux ,windows这些平台。修改分支代码,只需构建w转载 2021-09-03 20:19:29 · 569 阅读 · 0 评论 -
Skia最新“编译”,绘制中文字符串,加载PNG、BMP图片等资料的整理。
“编译”Skia国内不适合自己编译。Github 有不止一个自动构建的SKIA二进制build,涵盖多个操作系统,直接取而用之即可。推荐大名鼎鼎的JetBrains维护的仓库,地址是 https://github.com/JetBrains/skia-build。主要是静态库与头文件。最新release的静态库解压出来180MB,与LIBCEF一样。debug解压出来一两个G。推荐直接用release版本的。绘制中文字符串直接用Skia的SkString就可以,无需多次转换。如果显示方框,那说明字体原创 2021-08-09 15:38:55 · 2104 阅读 · 1 评论 -
为支持增量编译的Java注解启用Trees API(解决IncrementalProcessingEnvironment 不能 cast为 JavacProcessingEnvironmen)
首先,简述一下让Java的自定义注解支持增量编译的步骤:在注解模块的模块\src\main\resources\META-INF\gradle\incremental.annotation.processors文件中填写:包名.注解处理器1名称,isolating包名.注解处理器2名称,isolating是不是与在 META-INF\serveices\javax.annotation.processing.Processor文件中声明注解处理器很像呢?只不过后面多了,isolating,或者,原创 2021-07-22 17:26:56 · 705 阅读 · 2 评论 -
NotePad++使用、魔改笔记
NotePad++使用笔记++++++++++++++好用的工作区文档列表面板功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入++++++++++++++相信许多都是从NotePad++开始编写代码的。好用的工作区文档列表面原创 2020-08-22 15:02:51 · 2396 阅读 · 1 评论 -
又一 Java 注解(annotation)用例
之前提过Multiline注解,可以在低版本的Java语言中通过注释与注解优雅地实现多行文本的定义。将Multiline-String拓展为Multiline-Byte Array后,意犹未尽,于是开了个空工程(纯Java无groovy、maven管理)测试annotation。但是……怎么都不对,注解不生效,都没调用!明明,资源文件中meta-inf信息填好,处理器挂钩,但是写好的注解毛都没处理。一开始以为是idea的问题,换了Eclipse,也还是不行……索性放弃另起炉灶的想法。干脆再次拓展Multi原创 2020-07-11 11:03:22 · 387 阅读 · 0 评论 -
Java Annotation 修改 Field 变量的初始化语句。
资料绝少,幸有指路明灯:github/multiline,可将 String 初始化为其上/**文档*/:JCVariableDecl.init = maker.Literal("/**文档*/");扩展AbstractProcessor -> 自定义 process 回调 -> roundEnv.getElementsAnnotatedWith(注解类) -> 遍历 elementUtils.getTree(编译元素) -> (JCVariableDecl,变量声明) -&g原创 2020-06-10 06:57:20 · 740 阅读 · 1 评论 -
Blender v2.79b 的编译与使用
一:判断Blender是否适合自己搜索外网教程,Sebastian Lague大神录制有Unity中制作RPG游戏等一系列开源的视频教程,其中有用到Blender建立低面数角色、衣服、武器等模型,制作了走、跑、攻击等简单动画。个人认为这是最好的入门教程。B站上有别人搬运的。还有个展UV的教程,不过搬运得不完全。其他还有几分钟内做个低模并绑定骨骼的快餐式教程,很容易搜到,零基础就可以看。观看这些教程,了解 Blender 的基本操作模式,决定是否适合自己。(我认为Blender是级联命令式操作,直白讲就原创 2020-05-12 08:31:26 · 895 阅读 · 2 评论 -
合并 Ijkplayer 和 ffmpeg-metadata-retriever
ffmpeg-metadata-retriever(FMMR) 和 Ijkplayer 都是基于 ffmpeg, 因此应该能够合并两个项目。果不其然, 将 FMMR 的 jni 源文件复制到 ijkplayer-android-ff4\ijkmedia\metadata 下, 参照 ijkplayer 的其他模块改写 FMMR 的 android.mk, 很容易就把库文件编译了出来。Ijk 的...原创 2020-05-01 17:55:15 · 405 阅读 · 0 评论