- 博客(331)
- 资源 (38)
- 收藏
- 关注
原创 Qt中多线程高频率读取/写入多个原子变量的方法来避免CPU Cache Line 伪共享
摘要:在多线程高频率访问原子变量时,传统互斥锁会导致性能问题。本文介绍通过内存对齐技术避免CPU缓存行伪共享(False Sharing)的优化方法。核心方案是使用alignas(64)或Qt的Q_DECL_ALIGN(64)强制每个原子变量独占64字节缓存行,并提供C++17标准常量和数组分离等扩展方案。这些方法能显著提升多线程并发性能,适用于计数器、标志位等高频访问场景。
2025-09-04 12:00:00
681
原创 神经网络视觉AI“后时代”自瞄实现与对抗
整套系统完全不在Windows上运行,也不需要截取游戏画面,也不需要读写游戏数据,甚至连一个多余的进程、文件都不需要;他的原理是彻底不接触物理游戏主机,而是直接从HDMI读取画面数据用FPGA开发板上的Python+OpenCV来识别出游戏人物位置,如果当前他了解神经网络方面的视觉AI,也许他会打开新世界的大门!
2023-05-25 22:25:07
5921
3
原创 C++反作弊对抗实战 (序言篇)
在ring3下面开发作弊器与反作弊,这两者之间的对抗,就好比老师在课堂上面讲课,而底下有一群七八岁的“小学生”在课桌底下互掐一样,虽然大家都觉得很“疼”,但彼此都很清楚的明白,当真正碰到那群初高中生或大学生的大神们,我这种“小学生”被攻破和吊打的话,只剩时间问题了......
2022-03-02 14:18:48
4887
原创 C++反作弊对抗实战 (目录篇)
在观看此专栏时,强烈推荐你需要有一定的C/C++基础,至少能看懂C++语法、结构体、类等基础概念,以及了解一定win32 api开发基础,否则不建议你强行介入以至于打击了学习热情
2022-03-02 14:18:24
2791
3
原创 Windows实现高精度定时器的三种方法
前段时间一个项目需要用到1/24s的高精度定时器,每秒的误差不能超过10ms,大约41.666666666毫秒的延时,普通Sleep肯定是没办法满足的了,可以用以下新的三种方法:/* // 1秒=1000毫秒(ms) // 1毫秒=1/1000秒(s) // 1秒=1000000 微秒(μs) // 1微秒=1/1000000秒(s) // 1秒=1000000000 ...
2018-08-25 14:42:57
30889
原创 调试技巧 —— 如何利用windbg + dump + map分析程序异常
之前碰到论坛里有几个好友,说程序不时的崩溃,什么xxoo不能read的!如果光要是这个内存地址,估计你会疯掉~~所以分享一下基本的调试技巧,需要准备的工具有WinDbg + VS2022,
2011-09-04 23:12:45
20445
7
原创 giflib5.2.2 在Qt与VS C++中实现Gif缩放示例
文章摘要: 本文介绍了使用giflib 5.2.2在Qt和VS C++环境中实现GIF缩放的方案。主要内容包括:1) 配置Qt项目的.pro文件添加giflib库;2) 提供GifScaler类的接口实现,支持指定输出尺寸缩放GIF;3) 核心功能通过scaleFrame函数实现最近邻插值缩放,blendFrame处理透明像素合成;4) 完整解析GIF89a规范,处理帧间disposal方法(保留/清除/恢复背景等);5) 使用Windows API处理文件IO,确保跨平台兼容性。该方案可直接集成到Qt项目
2025-09-25 21:22:19
220
原创 C++指针强转问题 static_cast dynamic_cast reinterpret_cast const_cast
C++类型转换操作符详解:static_cast用于安全类型转换(如数值转换、向上转型);dynamic_cast用于父类到子类的运行时类型检查转换;reinterpret_cast处理无关类型间的危险转换(如指针与整型互转);const_cast用于移除const/volatile限定符。MFC中常见reinterpret_cast用于线程参数和窗口消息传递,需谨慎使用以避免未定义行为。每种转换都有特定用途和风险,应根据场景合理选择。
2025-09-25 21:14:45
283
原创 RISC-V 编译命令解析
本文解析两条RISC-V工程相关的命令。编译命令使用riscv-none-embed-gcc生成最小共享库test.so,通过参数指定64位架构、ABI标准、代码模型,并优化链接过程。精简命令使用riscv-none-embed-strip删除不必要的.hash段,减少文件体积。这两条命令协同工作,最终生成适用于嵌入式系统的高效精简共享库文件。
2025-09-25 21:10:14
357
原创 ITU-R P.372 无线电噪声预测库调用方法
计算大气噪声的标准差和偏差,基于 NTIA 报告 85-173。:调用 P372 动态库进行噪声计算。的计算程序,能够基于。计算出的噪声数据包含。
2025-09-03 09:00:00
876
原创 #日常甩锅 一直埋了十年的雷被我review修复了
本文对比分析了两个版本的C++代码(V1/V2),揭示了一个埋藏十年的内存越界BUG。V1版本存在边界检查缺失、硬编码常量、逻辑混乱等问题,可能导致内存越界和随机崩溃。作者通过30万行代码的全面排查,最终定位到根本原因:单片机与PC端代码的指针对齐差异。文章还提供了Keil环境下安全的内存对齐写法,并指出跨平台开发时硬件差异导致的调试难点。该案例凸显了代码审查、边界检查和跨平台协作的重要性,特别是当软件与硬件由不同团队开发时,需要更严谨的接口设计和验证机制。
2025-06-20 22:15:18
451
原创 在国产麒麟Kylin Linux Advanced Server V10中使用QT5开发环境并支持中文输入
官方源中的qt creator代码编辑器中是支持中文输入,运行后应用程序也支持!如果跟我这上面一样,说明你安装成功,可以正常使用qt开发你的应用程序了!不要安装第三方源的工具包,包括QT官网的!
2025-04-18 20:10:10
826
原创 GCC静态库与动态库链接顺序的深坑
接下来遇到 -lLibB,其中包含了对 SDL2 库的函数调用,但由于链接器已经经过了 SDL2 库,且没有记录下来这些未解析的符号,所以此时 LibB 无法解析这些函数,导致报错。在C程序链接器命令的时候,通常像这种写法-lSDL2 -lLibB,此时就会报B报错找不到A中的函数,但是如果交换顺序-lLibB -lSDL2就正常了,这是为何?接下来遇到 -lSDL2,此时链接器可以解析之前 LibB 中未解析的 SDL2 函数,从而解决所有符号的依赖,链接成功。
2024-10-24 17:56:49
533
原创 如何在QT5+MinGW环境中编译使用Marble开发地图地球仪
Marble它是一个虚拟地球仪和地图应用程序,支持多种平台。Marble 提供 2D 和 3D 的地图视图,能够展示各种地理信息,像卫星图、街道图、气象图等。它还支持自定义插件、路线规划、离线地图等功能,适合地理信息系统 (GIS) 和教育用途。Marble 有多种使用场景,可以集成到 Qt 应用中。你可以在使用 Marble 作为独立应用,也可以将其嵌入到自己的项目中.安装CMake时会默认勾选添加到环境目录。3.构建CMake文件,分别进不同目录输入。这里非常慢,估计1个小时起步了...
2024-10-24 17:55:38
1364
1
原创 VS2022配置编译使用boost库
VS2022配置编译使用boost库2、解压boost文件至D:\boost_1_85_0。3、打开VS2022命令行(红色区域不要进错了!(这里根据电脑硬件配置决定,通常3-10分钟完毕)6、待第5步完成,依次输入这两行命令。7、命令行参数注释(可不用理会)后会自动生成b2.exe。4、在命令行输入以下。
2024-07-16 23:06:36
3228
原创 HttpOpenRequest 函数偶尔会引起崩溃的坑
HttpOpenRequest的参数szAcceptTypes,因为他是一个二维数组.这里将会存在隐患,不定时随机崩溃。
2024-06-16 10:00:00
477
原创 QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem
QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem,继上一章节讲过qt中如何编译freetype。
2024-05-15 23:46:39
805
原创 Qt编译和使用freetype矢量字库方法
release目录会生成FreeType.dll与FreeType.o文件,即可供其他程序调用。后面都是默认下一步完成即可,下载后解压至QT DLL工程目录。这里基本上就编译成功,没什么问题了。
2024-05-15 23:44:46
1563
原创 Qt多线程下载文件(包含进度条、异常处理)
虽然Qt的网络模块在性能上可能略逊于WinInet API,但它提供了更高级的功能和更好的跨平台支持,适用于需要在不同操作系统上运行的应用程序。Qt的网络模块通常使用异步方式进行网络访问,这意味着网络请求是在单独的线程中进行的,而不会阻塞主线程。虽然这样做提高了程序的响应性,但也可能会导致一些性能损失。Qt的网络模块提供了更高层次的抽象,允许开发者以更简洁的方式编写网络相关的代码。Qt的网络模块可能使用不同的底层实现,如基于操作系统提供的网络库或者第三方库,这些底层实现的性能差异可能会影响到整体性能。
2024-05-14 10:00:00
845
原创 MFC/QT利用COM组件接口从字体名称、粗体、斜体获取到字体文件路径的方法
【代码】MFC/QT利用COM组件接口从字体名称、粗体、斜体获取到字体文件路径的方法。
2024-05-13 14:47:55
482
原创 Win32下VC++重置指定的USB端口/重新启动USB设备方法
是一个IO控制代码,用于控制USB集线器对特定端口执行重置操作,这有助于重新启动USB设备。在Windows操作系统中,这通常用于修复因为某些原因无法正常通信的USB设备。注意:这个代码需要管理员权限才能运行,并且可能会影响到正在使用的USB设备,因此请谨慎使用。在Windows中,你可以使用WinUSB(Windows USB Driver)库或者。API来发送这个IO控制代码。
2024-04-04 11:00:00
1513
原创 WinSock Api connect超时函数实现方法
表示服务器同时处理的连接请求的最大数量。在这种情况下,服务器只能处理一个客户端连接请求。如果客户端尝试连接时,服务器正在处理一个连接请求,客户端将被阻塞(即死等)直到服务器接受连接或超时。为了解决这个问题,您可以使用多线程或异步编程模型,以便服务器能够同时处理多个连接请求。
2024-03-29 18:00:00
600
原创 用纯C语言实现空气压强和电压关系
用纯C语言实现空气压强和电压关系,已知P是真空度,U是电压,C是3.572(以PA为单位),P=10**(U-C)/1.286
2024-03-20 19:30:00
521
1
原创 绊了一脚,骨折了...
忙完到十点半,疼了两三小时仍没好转便脱下鞋袜,才发现淤青肿了,实在疼的不行先回去拍了片,医生诊断:轻微骨折,好在只是拿了一点药丸和喷雾......周一早上6点出门准备上班,将车停好准备坐楼巴到深圳,下车没几步被不知道什么东西绊了一下,也没摔倒,便没当回事;当听到这句时,我特么无了个大语,不得不服老了......
2024-01-30 14:38:59
218
原创 C/C++ makefile 支持多目录、多文件批量化模版
最近因工作需要,要尝试徒手撸一份makefile文件,这份模版支持批量化,也不针对某一个C/CPP文件指定规则.....
2023-12-16 09:00:00
292
原创 纯C语言实现解析绘制单色位图文件获取颜色值
利用纯C语言解析单色位图文件获取颜色值,只需要你自己实现setPixel(int x, int y, int iColor)即可......
2023-10-26 22:44:11
854
2
原创 主流架构(gcc、msvc、x86、x64、arm)中double与float浮点数保留精度(末尾清零)
浮点会由于精度问题,导致无法直接做 != 比较,下面是一个主流架构下,优化处理浮点精度的函数, 保留精度(末尾清零)......
2023-10-23 20:32:43
1848
原创 4. (C++)利用redis或MySQL实现射击游戏排名系统
假设我们要设计一款排名系统,那必然要涉及到两大类数据:武器数据和非武器的通用数据,它他通常有一个共用的属性:那就是主键唯一的,例如玩家的数字编号,通常在MySQL中是自增的无符号整数字段。
2023-10-14 11:19:11
572
C++ Socket Hello World
2009-09-15
可编辑的ListCtrl类
2009-10-23
获取进程启动和结束时间的工具
2009-12-08
调试技巧 —— 如何利用windbg + dump + map分析程序异常
2011-09-04
简单的单链表排序 —— 学生管理程序
2010-09-19
C++操作Oracle SQL示例程序 codbc-master
2024-11-29
lv-font-conv vs2013 for win32
2024-07-20
利用纯C语言解析单色位图文件获取颜色值的代码
2023-10-26
电子书 MIPS Assembly Language Programming Using QtSpim By Ed Jorgen
2023-10-10
电子书《x86-64 Assembly Language Programming with Ubuntu 》
2023-10-10
电子书 Introduction to Programming using Fortran 95/2003/2008
2023-10-10
c++ hiredis redis-3.0 vs2013 src
2023-10-09
[ring3反作弊篇] VC++基于EBP遍历调用栈及模块名
2015-03-23
EP952_DS_应用原理图全部资料包
2022-02-21
VC手动解析PE文件调用DLL函数(资源+文件)
2013-03-25
VC6.0 NTP时间服务器同步代码
2016-10-10
MFC42U-MFCS42U.zip
2021-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅