- 博客(339)
- 资源 (15)
- 收藏
- 关注
原创 wxWidgets GUI 跨平台 入门学习笔记
和大多数现代的GUI编程框架一样,wxWidgets大量使用了面向对象编程的概念。每一个窗口都是一个C++的对象。wxMSW面向windows平台,也可以使用Wine的库进行编译,并且可以被配置成在WinCE上运行wxGTK可以使用GTK的1.x或者2.x版本,支持所有可以运行X11和GTK的类Unix平台wxX11使用了wxUniversal的窗口控件集,直接运行在Xlib上。这使得它很适合嵌入式系统,当然它也可以运行在那些不喜欢GTK+的桌面系统上。
2025-03-05 14:22:26
1271
原创 Cairo Note - Python绘制尝试+彩色emoji字体测试
由于python的cairo缺少很多实现,所以需要使用C++的cairo和DirectWrite来测试绘制文本。当使用emoji字体时,emoji也是彩色的。paint 是填充,但是会破坏context。translate 是坐标变换,移动x,y。Matrix 是矩阵变换,多个功能的糅合。transform 是坐标轴中心移动。scale 是缩放,负数代表翻转。
2025-01-12 15:52:16
466
原创 meson 简单教程(替代cmake) + 交叉编译
现在越来越多的开源项目采用了meson+ninja的构建方式,摒弃了CMake,Makefile的方式。虽然cmake很不错,但是语法和功能确实限制太多,难以阅读和理解。meson现在就是一个更优秀的替代者。scons 和 meson类似,但是速度太慢,整体设计没有meson更简单易懂。meson可以导出cmake/vs/…的工程,方便与IDE交互,以后使用meson管理项目是个非常不错的选择。
2025-01-09 09:33:12
1388
原创 cangjie仓颉编程语言学习Note-2.标准库学习
当前仓颉标准库提供了几乎涵盖常见开发所使用的常见库,这一点很赞! 详细模块如下:- std: 意指标准库,标准库是指在编程语言中预先定义的一组函数、类、结构体等,旨在提供常用的功能和工具,以便开发者能够更快速、更高效地编写程序。 - core 包是标准库的核心包,提供了适用仓颉语言编程最基本的一些 API 能力。 - argopt 包提供从命令行参数字符串解析出参数名和参数值的相关能力。 - ast 包主要包含了仓颉源码的语法解析器和仓颉语法树节点,提供语法解析函数。
2024-11-05 14:43:57
659
原创 cangjie仓颉编程语言学习Note-1.基础语法
仓颉是一帮子rust开发者,吸收了rust的语法,参考kotlin, golang, typescript 而做出的糅合怪!它使用方舟编译器,以llvm为后端,开发的一个国产编程语言。因为吸取了很多编程语言的优点,所以体验不错,但是融合的稍显生硬。又因为作为鸿蒙操作系统底层语言,所以标准库很完善,使用相对方便。和golang类似,简单的功能开发,几乎可以不依赖第三方库。
2024-10-31 16:51:38
747
原创 Zig FFI与第三方C库的集成与使用
Zig的官方文档中没有对于与第三方C库集成说明太多,实际使用时,出现很多问题。C的数据类型与Zig数据类型的对照。官方有基础类型的,对于字符串,结构体,特别是指针,官方直接不建议使用!但是实际上使用cimport进来的很多数据类型,都是C风格的指针,需要用户自己处理!这是最大的坑点.C中的Union结构体,如何在zig中读取和解析官方默认的实现是, 不明确的指针,需要用户自己强转。Zig的fmt/print相关函数,字符串格式化具体参数与说明在哪里?直接参考文章第一小节。这里以集成libc和。
2024-10-06 11:41:17
927
原创 Rust 全局变量的最佳实践 lazy_static/OnceLock/Mutex/RwLock
在实际项目开发中,难免需要用到全局变量,比如全局配置信息,全局内存池等,此类数据结构可能在多处需要被使用,保存为全局变量可以很方便的进行修改与读取。在Rust中,如果只是读取静态变量是比较简单的,比如全局变量是一个usize或者& str等类型的值。如果全局变量是需要初始化产生的就比较复杂了,比如解析一个配置文件,然后把配置文件中的内容赋给全局变量。由于全局变量要被修改,这个全局变量得是可变的,也就是说产生了全局可变变量,而这种方式违反了Rust的设计原则。
2024-09-23 16:48:34
1316
原创 TLC/TK Adv学习笔记1 - Py版本+美化
tkinter.ttk 模块自 Tk 8.5 开始引入,它提供了对 Tk 风格的部件集的访问。它还带来了一些额外好处包括在 X11 下的反锯齿字体渲染和透明化窗口(需要有 X11 上的混合窗口管理器)。tkinter.ttk 的基本设计思路,就是尽可能地把控件的行为代码与实现其外观的代码分离开来。所以,TTK可以更好地自定义theme来美化UI。
2024-09-20 14:48:49
1216
原创 RmlUi 初试,hello world
最近在研究GUI的各个方面,最后被导向了web render,真的是一言难尽。这里就其中一个比较有意思的项目 RmlUi 浅试一下,没想要还挺麻烦!这里留下note以供后人参考。
2024-05-25 20:16:58
1406
3
原创 Visual Studio 2022 GTK4 GUI 开发 Project Key setting
Visual Studio 2022 GTK4 Project Key setting一般情况下需要MSYS2,然后参考Linux下开发。这里使用第二种,直接 VS + 编译好的bin/lib/include的开发。预编译好的文件(只有x64版本):下载后,解压到C盘根目录,C:/gtk/
2024-05-18 18:08:28
1305
2
原创 TCL/TK GUI in Python 浅试笔记
Tk 使用单线程、事件驱动的编程模型.所有 GUI 代码、事件循环和 应用程序在同一线程中运行。因此,强烈建议不要进行任何阻止事件处理程序的调用或计算。个人感受:TK来自于TCL,用来做小工具UI和脚本语言的UI是很不错的。如果想要好的UI,大规模程序,现代化的IDE支持,建议选择其他GUI框架。
2024-05-07 10:41:11
1056
原创 Rust 实战练习 - 12. Axum Web 简单demo
Rust 的异步框架tokio非他莫属,而web框架一直是悬而未决,说到底还是因为没有官方成熟的方案指引,大家各玩各的,互不兼容,白白浪费精力。这个事情一直等到半官方组织tokio推出axum有了改善。
2024-04-27 22:50:26
978
原创 Rust 实战练习 - 11. Rust异步的基石 tokio
Tokio是一个异步运行时。同时支持embedded devices.- 对异步代码的多线程运行时- 对标准库的异步实现 (**这个可以省很多事情**)- 生态系统丰富,非常多的工具库实现Tokio不是万能的,部分场景不建议,可以考虑使用其他的:- 多CPU计算密集型,并行计算。Tokio主要解决多个任务IO等待问题,对于并行计算没有太大优势。- 大量文件读取。Tokio没有提供异步文件API. 使用它与普通线程读取文件没有区别。- 单个Web请求,或者阻塞型请求。因为Tokio优势
2024-04-27 22:49:55
796
原创 Windows端口占用问题处理netsh dynamicport excludedportrange
【代码】Windows端口占用问题处理netsh dynamicport excludedportrange。
2024-04-11 15:22:03
585
原创 Rust 实战练习 - 10. JSON、XML、YAML/TOML、Ini专题
常见的配置文件有很多:JSON, Ini, XML, TOML, YAML ...目标:- JSON/YAML/TOML- Ini- XMLRust中序列化用的最多的是 `serde`, 依赖它,有很多出色的第三方库可以使用。其中,`serde`本身支持JSON/YAML/TOML/JSON5...多种,这里使用`serde_json`. XML需要第三方库`quick-xml`,他通过支持`serde`也支持了结构体序列化,配合十分完美.INI比较特别,这里有一个比较强大的
2024-04-08 21:19:17
795
原创 Rust 实战练习 - 9. 文本编码,URL编码,加密解密
编程工作中,很复杂的一个环节的就是编解码和多语言。这里只讨论编解码的工作。目标:- 常见文本编码的转换(GBK, Shift-JIS, UTF8, Unicode, ASCII)- Web中常用的编码- 常见的加密算法(md5, sha1, HMAC, AES/DES, RSA)
2024-04-08 21:18:00
1238
原创 Rust 实战练习 - 8. 内存,ASM,外挂 【重磅】
目标:- C写一个Demo版本的游戏- 由浅入深,了解外挂原理- Linux/Android下实现内存读取- ptrace实现内存修改(依赖第三方ptrace 提供了一种机制使得父进程可以观察和控制子进程的执行过程,ptrace 还可以检查和修改子进程的可执行文件在内存中的image及子进程所使用的寄存器中的值。在Linux下如何搜索内存找到我们需要的数据,不在这里讨论,我们根据gamebox提供的地址,直接定位。这也就是简单的游戏外挂范围的技术。/c 就可以随机改变其中的等级,金钱,位置信息。
2024-03-25 20:01:17
1698
原创 Rust 实战练习 - 7. FFI, 库, ABI, libc
FFI(Foreign Function Interface)是这样一种机制:用一种编程语言写的程序能调用另一种编程语言写的函数(routines)。调用约定,类型表示和名称修饰这三者的统称,即是众所周知的应用二进制接口(ABI)。如果所有的语言在调用时都能认识同样一套 ABI 规范,那么就能完全畅通的调用了。可惜,世界不会像我们人为想象的那样干净。等。。而 Rust 目前支持如下 ABI目前我们 IT 工业的基石,绝大部分是由 C 语言写成。
2024-03-25 19:57:11
1516
2
原创 Rust 实战练习 - 6. 指针指针+各种指针区别
【代码】Rust 实战练习 - 6. 指针指针+各种指针区别。Box,RC,Arc,Cell,RefCell,Cow,String,Vec,RawRec,Unique, Shared
2024-03-25 19:54:00
531
原创 Rust 实战练习 - 5. 多线程,多进程,协程
Rust通过await, async, Future 支持无栈协程。内部生成了一个状态机以保证代码正确的流程。虽然使用起来没有golang的方便,但胜在效率很高。(早期有类似go的绿色线程GreenThread,现在已经抛弃)协程的并发需要依赖第三方库,目前支持1:N, N:M 模型,可以在一个线程池里完成N:M模型的并发。但是,rust没有提供官方的运行时,需要社区驱动。比如futures, tokio, std-.对于golang语言,使用的是有栈协程。使用栈和上下文切换来执行异步代码逻辑的机制。
2024-03-25 19:51:55
885
1
原创 Rust 实战练习 - 4. 网络 TCP/UDP/Channel
多播,也称为“组播”,与单播一样,多播是允许在广域网即Internet上进行传输的,多播的地址是特定的,D类地址用于多播。是“多个生产者,单个消费者”(Multiple Producers, Single Consumer)的缩写,意味着多个线程可以同时向通道发送数据,但只有一个线程可以从通道接收数据。3、管理权限多播地址:在239.0.0.0~239.255.255.255之间,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制多播范围。函数来创建一个通道。
2024-03-25 19:50:06
796
原创 Rust 实战练习 - 3. 文件系统,权限,读写,路径组合,time
【代码】Rust 实战练习 - 3. 文件系统,权限,读写,路径组合,time。
2024-03-25 19:47:44
561
原创 Rust 实战练习 - 2. OS,IO,Platform(注册表,/etc)
【代码】Rust 实战练习 - 2. OS,IO,Platform(注册表,/etc)
2024-03-25 19:43:55
395
原创 联通宽带+老毛子Padavan固件 开启IP v6
设置一样,路由器也可以正常获取IP v6,只有一个问题,IP v6内网无法在公网访问。然后在路由器里进行设定。(文章中推荐桥接,路由器进行拨号)首先,你要确定当前你所在的地区运营商已经开通了。但是很遗憾,目前仅有手机蜂窝流量全面支持。防火墙,要么用软路由,要么换掉,别无他法。的部分主流中高端型号支持此功能。访问,而许多酒店,咖啡厅的公共。地址后就可以进行下一步操作了。但是请注意,至少在目前来说,访问端和服务端必须同时支持。端的服务器,有很多限制。查看,记住账号和密码)及公司网络,都仅支持。
2023-12-06 13:36:57
749586
原创 QEMU/Renode 开发嵌入式程序
模拟了vexpress-a9这个机器,内存512M,没有图形界面,Linux的kernel是./zImage, 设备树为vexpress-v2p-ca9.dtb文件,还有SD卡为rootfs.ext3文件. 还有一个附加的而启动指令,制定了console输出的端口。对于嵌入式Linux而言,因为大部分是软件内容,一般模拟起来相对比较容易,如果是STM32一类的MCU,如果原生不支持,就一定需要自己定制了。所以,如果真的做产品级别的开发模拟,就需要走第三个路子,自己完成自己的板子的开发。
2023-12-06 10:23:37
756
原创 slint ui学习笔记
slint是一个类似qml的标记语言(xml/css之类方便界面设计的语言),经过编译器slint compile(类似QT的moc/uic/rcc工具)可完整的转换成Cpp或者Rust。其开发方式类似qml+cpp,这得益于slint ui的两位初始创建人来自QT团队。slint 优点。
2023-11-15 16:12:04
2237
原创 苏州景点梳理(含交通方式)
苏州中心-东方之门 + 音乐喷泉。苏州中心-东方之门 + 音乐喷泉。湖州-太湖古镇+太湖月亮湾。护城河游船(新市桥码头)三山岛景区(太湖湖心岛)护城河游船(新市桥码头)iD PARK歌林公园。阳澄湖-阳澄环路自驾。苏州太湖国家湿地公园。阳澄湖-阳澄环路自驾。
2023-11-04 15:48:39
300
原创 IOI车机系统刷机和改包笔记2 - 改包脚本
最近对雪佛兰改包需求感兴趣的网友很对,大家都遇上了很多奇怪的问题,这里就我自己使用的环境和脚本进行分享,供大家参考。
2023-10-31 21:23:25
3542
33
原创 Linux_API_系列-整体概览
Linux下API编程不像Windows一样,对每种设备和不同功能都有统一的API,所以有了《Windows核心编程》这种导论一类的大而全的书籍,整本书厚的像一块砖头。Linux下贯彻了一贯的“一切皆文件”的宗旨,所以对于系统编程而言,整体API算是非常少了。网上有很多大佬做过很多分析总结,或者参考《Linux系统高级编程》,很快就能大概得到整体概览。
2023-10-20 15:33:26
314
转载 Win11.Win10老游戏运行补丁(cnc-ddraw),适用广泛,红色警戒(红警)焕发青春
转载自52PJ: https://www.52pojie.cn/thread-1819969-1-1.html。https://github.com/FunkyFr3sh/cnc-ddraw,顺便点个star。蓝奏:https://wwps.lanzouk.com/i6FcD151rxeh,密码:2am5。再也不需要修改:管理员运行,兼容性运行,更改DPI。我最爱的红警2和红色警戒3,可以看我以前的帖子,有你所有需要的。命令与征服:泰伯利亚之日。命令与征服:红色警戒2。命令与征服:红色警戒。
2023-08-15 11:32:27
4696
原创 IOI车机系统刷机和改包笔记
我自己21年买的雪佛兰探界者SUV,没想到到了23年,车机系统上的高德导航还是3.2版本,而官方的已经7.1.中间出去玩,在高速上被车机上的高德坑了好多次,简直无力吐槽。单纯使用手机Carplay虽然也能完成导航任务,但是遇上缴费等情况,极其麻烦,所以汇聚了网友的智慧,我个人制作了一份修改教程。雪佛兰探界者21款车机系统为Android车机修改定制,官方系统最后一个版本为**“2020-2023收音机(IOI)51.20.11(请解压后阅读内含的升级指导书)”**。
2023-07-12 15:12:40
14650
53
原创 Golang IOT中的数据序列化与解析
Golang中对于JSON、XML、HTML、RPC、PB、Thrift等现代化协议都支持的非常好,但是对于IOT领域,用的多的反而是HEX原始数据,如果一个个解析,会是非常麻烦的事情。所以,对于HEX数据是否有方便好用的打包/解包方法?对于gob和msgpack在IOT一般比较困难,适用性差,探索一下binary的方案。
2023-05-18 14:12:45
1030
原创 C# Winform 中使用 Webview2
目前的windows/Linux下的UI方案,以Qt为主,Flutter, Electron为辅,其他的各种UI都是不堪大用。除了使用CEF的Qt/C++/C#方案,Qt+WebEngine, 目前在Windows下各家的最终归路都转向Webview2方案,可以极大地减少发布的程序的大小。
2023-05-06 14:21:23
7682
5
原创 BIOS dmi 信息获取
考虑到跨平台的需求,目前通过dmi获取主板BIOS信息最为靠谱,然后可以考虑添加MAC或者硬盘ID。通过跨平台方案直接获取主板bmi信息,得到CPU和主板特征:(MAC和硬盘需要其他方式获取)
2023-05-05 11:40:16
1063
原创 Vue3中双向数据绑定与Pinia实践+JS数据引用的循环修改问题
VUE3虽然出了很久了,但是很少深入研究,目前项目上遇到了一些问题,所以做个Note解决一下疑问:1. v-bind/v-model怎么与Pinia进行结合2. Object/Array数据大量处理时,为何有的修改不生效3. 组合API与选项API选择 (TS不考虑)4. This指针问题
2023-05-04 11:46:17
6367
原创 Qt Http JSON Get-Post 代码
【代码】Qt Http JSON Get-Post 代码。纯Qt实现Http Get/Post协议:1. Block模式2. 支持超时取消功能3. 可自定义Header
2023-02-16 14:06:52
326
原创 CMake基础学习使用与Demo-第二篇
有了上一篇,基础的cmake使用配合IDE已经能完成基本的工作了,对于复杂的项目,一般还需要配合编译器做定制。比如使用Boost库,CUDA,使用Qt框架,使用CMake编译嵌入式程序…甚至可以考虑使用ctest指令完成代码的单元测试,或者install指令或者cpack制作安装脚本。还可以通过配置不同编译器,进行跨平台编译。
2023-02-07 16:27:23
537
原创 CMake基础学习使用与Demo-第一篇
CMake即跨平台和跨方案的类似make方案,使用CMakeLists.txt进行编译内容管理。和他对应的是国产的xmake, 更简单易用,但是不够国际化,正式项目以Cmake为主目前,VS,QT, Clion,VSCode等各大IDE都默认支持CMake构建,所以,以后的项目如果可以使用CMake是一个比较好的开放方案。
2023-02-07 13:33:06
966
1
Delphi 12 Help帮助文档,提取自RAD Studio 12 Doc目录
2023-11-11
DAHUA_HTTP_API.pdf
2019-05-30
hikvision-onvif2.4.7z
2019-05-30
下载地址转换器_超级版
2011-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人