
ASM/WTL/MFC/QT
文章平均质量分 62
C++/VC/MFC 各种奇淫技巧!
汪宁宇
我想大抵是累了,横竖都没有精神,漫不经心的看着代码,眼皮倦倦的。仔细看了半夜的符号,才从字缝里看出来,满眼都是吃人的bug......
(有多年C/C++上下位机开发经验,熟悉三菱FX1S/1N/2N/3U、MODBUS等常见通讯协议,可兼项目顾问等方式合作有意私信!)
展开
-
qt中libusb热插拔检测示例代码
qt中libusb热插拔检测示例代码。原创 2025-03-24 21:00:00 · 267 阅读 · 0 评论 -
gcc编译静态库及调用方法查看导出函数
【代码】gcc编译静态库及调用方法查看导出函数。原创 2024-10-24 17:57:49 · 358 阅读 · 1 评论 -
GCC静态库与动态库链接顺序的深坑
接下来遇到 -lLibB,其中包含了对 SDL2 库的函数调用,但由于链接器已经经过了 SDL2 库,且没有记录下来这些未解析的符号,所以此时 LibB 无法解析这些函数,导致报错。在C程序链接器命令的时候,通常像这种写法-lSDL2 -lLibB,此时就会报B报错找不到A中的函数,但是如果交换顺序-lLibB -lSDL2就正常了,这是为何?接下来遇到 -lSDL2,此时链接器可以解析之前 LibB 中未解析的 SDL2 函数,从而解决所有符号的依赖,链接成功。原创 2024-10-24 17:56:49 · 373 阅读 · 0 评论 -
如何在QT5+MinGW环境中编译使用Marble开发地图地球仪
Marble它是一个虚拟地球仪和地图应用程序,支持多种平台。Marble 提供 2D 和 3D 的地图视图,能够展示各种地理信息,像卫星图、街道图、气象图等。它还支持自定义插件、路线规划、离线地图等功能,适合地理信息系统 (GIS) 和教育用途。Marble 有多种使用场景,可以集成到 Qt 应用中。你可以在使用 Marble 作为独立应用,也可以将其嵌入到自己的项目中.安装CMake时会默认勾选添加到环境目录。3.构建CMake文件,分别进不同目录输入。这里非常慢,估计1个小时起步了...原创 2024-10-24 17:55:38 · 951 阅读 · 0 评论 -
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 · 2519 阅读 · 0 评论 -
HttpOpenRequest 函数偶尔会引起崩溃的坑
HttpOpenRequest的参数szAcceptTypes,因为他是一个二维数组.这里将会存在隐患,不定时随机崩溃。原创 2024-06-16 10:00:00 · 391 阅读 · 0 评论 -
QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem
QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem,继上一章节讲过qt中如何编译freetype。原创 2024-05-15 23:46:39 · 708 阅读 · 0 评论 -
Qt编译和使用freetype矢量字库方法
release目录会生成FreeType.dll与FreeType.o文件,即可供其他程序调用。后面都是默认下一步完成即可,下载后解压至QT DLL工程目录。这里基本上就编译成功,没什么问题了。原创 2024-05-15 23:44:46 · 1206 阅读 · 0 评论 -
Qt多线程下载文件(包含进度条、异常处理)
虽然Qt的网络模块在性能上可能略逊于WinInet API,但它提供了更高级的功能和更好的跨平台支持,适用于需要在不同操作系统上运行的应用程序。Qt的网络模块通常使用异步方式进行网络访问,这意味着网络请求是在单独的线程中进行的,而不会阻塞主线程。虽然这样做提高了程序的响应性,但也可能会导致一些性能损失。Qt的网络模块提供了更高层次的抽象,允许开发者以更简洁的方式编写网络相关的代码。Qt的网络模块可能使用不同的底层实现,如基于操作系统提供的网络库或者第三方库,这些底层实现的性能差异可能会影响到整体性能。原创 2024-05-14 10:00:00 · 683 阅读 · 0 评论 -
C++利用freetype提取汉子库的方法
【代码】C++利用freetype提取汉子库的方法。原创 2024-05-13 14:41:19 · 389 阅读 · 0 评论 -
MFC/QT利用COM组件接口从字体名称、粗体、斜体获取到字体文件路径的方法
【代码】MFC/QT利用COM组件接口从字体名称、粗体、斜体获取到字体文件路径的方法。原创 2024-05-13 14:47:55 · 394 阅读 · 0 评论 -
在QT中遍历所有字体并获取对应字体文件路径的方法
在QT中遍历所有字体并获取对应字体文件路径的方法原创 2024-05-07 22:19:25 · 1018 阅读 · 0 评论 -
QT4/QT5 QPainter::drawText实现自动换行
QT4/QT5 QPainter::drawText实现自动换行原创 2024-05-07 22:17:05 · 1156 阅读 · 0 评论 -
Win32下VC++重置指定的USB端口/重新启动USB设备方法
是一个IO控制代码,用于控制USB集线器对特定端口执行重置操作,这有助于重新启动USB设备。在Windows操作系统中,这通常用于修复因为某些原因无法正常通信的USB设备。注意:这个代码需要管理员权限才能运行,并且可能会影响到正在使用的USB设备,因此请谨慎使用。在Windows中,你可以使用WinUSB(Windows USB Driver)库或者。API来发送这个IO控制代码。原创 2024-04-04 11:00:00 · 1099 阅读 · 0 评论 -
WinSock Api connect超时函数实现方法
表示服务器同时处理的连接请求的最大数量。在这种情况下,服务器只能处理一个客户端连接请求。如果客户端尝试连接时,服务器正在处理一个连接请求,客户端将被阻塞(即死等)直到服务器接受连接或超时。为了解决这个问题,您可以使用多线程或异步编程模型,以便服务器能够同时处理多个连接请求。原创 2024-03-29 18:00:00 · 479 阅读 · 0 评论 -
在C++控制台程序中实现一个简单的进度条效果
在C++控制台程序中实现一个简单的进度条效果通常涉及使用控制台输出和控制台光标移动。原创 2024-03-30 10:00:00 · 660 阅读 · 0 评论 -
基于LCD点阵颜色数组绘制并生成BMP格式
【代码】基于LCD点阵颜色数组绘制并生成BMP格式。原创 2024-03-29 18:00:00 · 364 阅读 · 0 评论 -
用纯C语言实现空气压强和电压关系
用纯C语言实现空气压强和电压关系,已知P是真空度,U是电压,C是3.572(以PA为单位),P=10**(U-C)/1.286原创 2024-03-20 19:30:00 · 439 阅读 · 0 评论 -
_MSC_VER宏对应的Visual Studio版本
_MSC_VER宏对应的Visual Studio版本原创 2023-12-18 15:00:00 · 1392 阅读 · 0 评论 -
C/C++ makefile 支持多目录、多文件批量化模版
最近因工作需要,要尝试徒手撸一份makefile文件,这份模版支持批量化,也不针对某一个C/CPP文件指定规则.....原创 2023-12-16 09:00:00 · 223 阅读 · 0 评论 -
纯C语言实现解析绘制单色位图文件获取颜色值
利用纯C语言解析单色位图文件获取颜色值,只需要你自己实现setPixel(int x, int y, int iColor)即可......原创 2023-10-26 22:44:11 · 743 阅读 · 2 评论 -
主流架构(gcc、msvc、x86、x64、arm)中double与float浮点数保留精度(末尾清零)
浮点会由于精度问题,导致无法直接做 != 比较,下面是一个主流架构下,优化处理浮点精度的函数, 保留精度(末尾清零)......原创 2023-10-23 20:32:43 · 1558 阅读 · 0 评论 -
4. (C++)利用redis或MySQL实现射击游戏排名系统
假设我们要设计一款排名系统,那必然要涉及到两大类数据:武器数据和非武器的通用数据,它他通常有一个共用的属性:那就是主键唯一的,例如玩家的数字编号,通常在MySQL中是自增的无符号整数字段。原创 2023-10-14 11:19:11 · 474 阅读 · 0 评论 -
3. Windows下C++/MFC调用hiredis库操作redis示例
将之前下载和编译好的Redis目录拷贝到新建好的工程目录下面,再点击测试工程的右键/属性,点击C++/常规,附加包含目录添加以下路径,注意如果原先有多个路径,在末尾处添加分号后再粘贴:点击C++/常规,附加包含目录点击完成即可。原创 2023-10-13 11:00:00 · 1301 阅读 · 1 评论 -
2. redis常见数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。原创 2023-10-12 10:00:00 · 229 阅读 · 0 评论 -
1. Windows平台下如何编译C++版本的Redis库hiredis
Windows平台下如何编译C++版本的Redis库hiredis,及编译错误解决办法原创 2023-10-10 22:18:16 · 1900 阅读 · 0 评论 -
linux C++用pthread_create创建线程示例
linux C++用pthread_create创建线程示例原创 2023-09-13 19:00:00 · 238 阅读 · 0 评论 -
神经网络视觉AI“后时代”自瞄实现与对抗
整套系统完全不在Windows上运行,也不需要截取游戏画面,也不需要读写游戏数据,甚至连一个多余的进程、文件都不需要;他的原理是彻底不接触物理游戏主机,而是直接从HDMI读取画面数据用FPGA开发板上的Python+OpenCV来识别出游戏人物位置,如果当前他了解神经网络方面的视觉AI,也许他会打开新世界的大门!原创 2023-05-25 22:25:07 · 5363 阅读 · 3 评论 -
用纯C语言分别实现增量式与位置式的PID自整定算法
用纯C语言分别实现增量式与位置式的PID自整定算法原创 2023-02-20 11:00:00 · 6470 阅读 · 1 评论 -
用纯C语言实现3D空间中的点坐标转化为屏幕二维点坐标,包含主视图、侧视图、俯视图、正等轴投影
要实现3D空间中的点坐标转换为屏幕二维点坐标,需要进行透视变换和投影变换。以下是一些基本的思路和示例代码,可以用于实现主视图、侧视图、俯视图、正等轴投影。原创 2023-02-19 20:00:00 · 1738 阅读 · 0 评论 -
ChatGPT 在做什么… 以及它为何发挥作用?
ChatGPT 能够自动生成一些读起来甚至表面上像人类写的文字的东西,这很了不起,而且出乎意料。但它是如何做到的?为什么它能发挥作用?我在这里的目的是大致介绍一下 ChatGPT 内部的情况,然后探讨一下为什么它能很好地生成我们认为是有意义的文本。我应该在一开始就说,我将把重点放在正在发生的事情的大画面上,虽然我将提到一些工程细节,但我不会深入研究它们。(我所说的实质内容也同样适用于目前其他的 “大型语言模型” LLM 和 ChatGPT)。转载 2023-02-18 15:21:20 · 816 阅读 · 0 评论 -
QT启动时设定QDockWidget初始化窗口大小
这个功能是为了保留软件上一次的布局设置等信息,比如软件窗口上次的大小或坐标位置、停靠栏大小与位置、表格控件的行高列宽信息等等,从这些细节上优化易用性,在QT4与5中实现方法均不相同:原创 2022-12-21 20:15:00 · 2122 阅读 · 0 评论 -
#QT 字符编码集GB2312、GBK、BIG5、GB18030、Unicode、UTF-8、UTF-16
QT 字符编码集GB2312、GBK、BIG5、GB18030、Unicode、UTF-8、UTF-16原创 2023-02-21 10:00:00 · 1466 阅读 · 0 评论 -
三、C++反作弊对抗实战 (实战篇 —— 4.辅助工具开发:利用MFC、Freetype、ImGui在OpenGL绘制滚动文字、窗口、菜单、按钮等控件)
利用MFC、Freetype、ImGui在OpenGL绘制滚动文字、窗口、菜单、按钮等控件。这一章节将讲述如何在OpenGL/DirectX环境的游戏中使用第三方的ImGui绘制常见的窗口和控件,例如菜单、按钮、复选框、滑动条等等,这一章节需要有一定的C++基础和Win32相关开发经验原创 2022-10-13 21:30:27 · 1792 阅读 · 1 评论 -
三、C++反作弊对抗实战 (实战篇 —— 3.如何获取游戏中角色人物角色的名称坐标、血量、武器信息(非CE扫描))
在上一章节中《三、C++反作弊对抗实战 (实战篇 —— 2.认识CS1.6常见的数据结构与流程)》我们了解了一些常见的数据结构与一些接口函数,在这里将介绍如何获取游戏中角色人物角色的名称坐标、血量、武器信息(非CE扫描)的方法。...原创 2022-08-28 18:52:56 · 2219 阅读 · 0 评论 -
MFC从字体名获取字库文件路径(从宋体获取到simsun.ttc)
#MFC从字体名获取字库文件路径(从宋体获取到simsun.ttc)原创 2022-08-16 20:51:07 · 2263 阅读 · 1 评论 -
二、C++反作弊对抗实战 (进阶篇 —— 18.如何检测与对抗各种调试器)
如何检测与对抗各种调试器为了应对破解者调试我们的反作弊系统,所以我们需要检测各种调试器,以此来判断我们的游戏是否正在被调试。本文将非常详细的由浅入深的介绍ring3下面各种常见的检测方法(包括示例代码)原创 2022-04-16 21:06:00 · 1986 阅读 · 0 评论 -
二、C++反作弊对抗实战 (进阶篇 —— 17.如何内存校验保护代码段、对抗远程线程注入)
这一章节将重点介绍如何利用内存校验防止第三方模块或辅助软件恢复我们的HOOK或者篡改任意代码段,配套全程在2.17目录中,本专栏所有内容仅供学习参考,我们应当坚决抵制任何不非行为!原创 2022-03-05 00:26:38 · 1250 阅读 · 0 评论 -
二、C++反作弊对抗实战 (进阶篇 —— 15.如何对抗OpenGL类型的透视作弊器)
在前面的章节中已经分析过OpenGL32类型作弊器的原理与代码片段,在这里将介绍如何其中一些对抗的方法......原创 2022-03-04 10:46:01 · 548 阅读 · 0 评论 -
二、C++反作弊对抗实战 (进阶篇 —— 13.利用内联汇编实现多层深度检测非法call)
在上章节中介绍了利用ebp返回地址检测非法call函数调用、如何实现VS2010调试器的调用堆栈列表的方法,在这章节中,我们换另一种纯汇编实现的深度多层调用堆栈检测方法,示例代码如下:原创 2022-03-04 10:43:55 · 666 阅读 · 0 评论