自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++软件开发架构

【代码】C++软件开发架构。

2025-04-02 13:53:55 412

原创 C++消息总线和数据总线,可实现代码间交互完全解耦

C++架构级代码,消息总线和数据总线,可实现代码通信间交互完全解耦

2025-01-19 18:13:15 272

原创 C++编译期生成枚举唯一标识

C++编译期生成枚举唯一标识,可用于作为hash的键值

2024-10-15 17:29:30 151

原创 QT在宏定义中使用Q_OBJECT宏和信号出现报错

宏定义中使用信号槽,需要在信号前使用Q_SIGNAL 标识信号,否则会出现编译报错。

2024-10-10 15:12:07 172

原创 基于QT的C++中小项目软件开发架构源码

基于QT信号槽机制实现类之间的交互调用通信,适用于使用不同枚举作为消息交互的类型场景,支持附带任意参数,代码使用方式参考前一篇文章。

2024-09-23 17:41:29 1080

原创 软件开发设计模式的一点个人理解

软件开发设计模式的一点个人理解

2024-08-30 15:08:30 666

原创 C++中小项目软件开发架构源码

C++中小项目软件开发架构源码

2024-08-22 16:12:57 563

原创 QT进程间通信极简版(仅支持传递消息类型)

【代码】QT简易进程间通信框架。

2024-07-27 18:09:13 203

原创 Qt实现远程桌面控制

Qt实现远程桌面控制

2024-02-27 14:51:40 1655 7

原创 QGraphicsItem设置了QGraphicsItem::ItemIsMovable和QGraphicsItem::ItemIsSelectable仍然无法拖动

Qt图形项如果隐藏然后再显示出来,则会出现拖动不再生效的问题,如下代码。

2024-02-23 11:41:14 419

原创 C++、Qt绘制角度圆弧,逆时针方向绘制,p1为夹角点,从p2绘制到p3

Qt三点绘制夹角,支持超180度绘制

2024-02-01 10:52:43 336

原创 Windows核心编程—第17章—内存映射文件

当exe文件被映射到进程的地址空间中之后,系统将访问exe文件的一个部分,该部分列出了包含exe文件中的代码要调用的函数的dll文件。方法1:一个文件,一个缓存,从文件一次性读到缓存,逆序后写回去,缺点1:无法处理大文件,缺点2:如果写回时过程异常,文件被破坏。方法4:一个文件,零缓存,使用内存映射,无需分配/释放内存和加载/写回文件数据到内存:缺点:过程异常,文件被破坏。方法3:一个文件,一个缓存,读一定大小文件内容到缓存,逆序后写回去 ,缺点:如果写回时过程异常,文件被破坏。目的:逆序一个文件的内容。

2024-01-26 14:20:11 904

原创 Windows核心编程—第15章—在应用程序中使用虚拟内存

回收使用VirtualFree,释放保留区域,指定MEM_RELEASE,回收提交的物理存储,使用MEM_DECOMMIT,回收也会按页分配粒度进行回收。Windows提供了3种进行内存管理的方法。分配的空间会自动对齐到页面大小,一般4KB。VirtualAlloc用于分配虚拟内存。提交:给分配的区域分配实际的物理空间。虚拟内存使用,malloc的底层函数。保留:在地址空间分配一块区域。

2024-01-22 14:41:08 203

原创 Windows核心编程—第13章—Windows的内存结构

进程彼此有私有的虚拟地址空间,私有表示进程只能访问自己的地址空间,不能访问其他进程的虚拟空间地址都是一样的,实际映射到的物理地址不同VirtualAlloc用于分配地址空间和分配物理存储,VitualFree用于释放页是管理内存时的操作粒度单元,一般为4KB磁盘上的文件可供进程作为虚拟内存,称为页文件当进程访问地址空间中的一个数据块时,有两者情况,一种是数据已经在内存中,则直接将虚拟内存地址映射到内存的物理地址,然后执行访问。一种是数据还在页文件中,操作系统就会在内存中找寻空页,如果找不到就会释

2024-01-22 13:55:12 131

原创 C++模拟Qt信号槽简易实现

【代码】C++模拟Qt信号槽简易实现。

2024-01-17 13:37:13 449

原创 让一个进程窗口显示在最前端

连接

2023-11-24 15:45:07 738

原创 QT主线程等待执行耗时操作,同时不卡死界面

【代码】QT主线程等待执行耗时操作,同时不卡死界面。

2023-11-03 16:11:49 616

原创 在一圆心点周围的多个离散点绘制光滑曲线

【代码】在一圆心点周围的多个离散点绘制光滑曲线。

2023-08-02 10:57:27 177

原创 获取当前时间到达24:00点所经过的时间

【代码】获取当前时间到达24:00点所经过的时间。

2023-07-05 17:04:13 211

原创 C++/C++11实现的中小项目级别日志系统源码

多文件记录日志,线程安全,简单方便易用

2023-02-10 17:58:52 200

原创 编译驱动程序报错BufferOverflowFastFailK.lib(loadcfg.obj) : error LNK2001: __guard_eh_cont_count

网上没有找到该报错的解决方法,重新安装WDK后解决,记录一下参照此博文重新安装VS对应的WDK对应版本,我的是VS2019+适用于 Windows 10 版本 1903 的 WDK,WDK下载地址。

2022-05-30 17:30:57 802

原创 windows读写文件立即写入磁盘

在刚记录完写数据到文件后,执行强制关机操作,重启后会出现数据丢失情况。考虑是缓存造成的,调用了QT的file.flush、close,win32的FlushFileBuffers均仍会出现问题。网上一通搜集找到了方案,使用windows的CreateFile时可以指定FILE_FLAG_WRITE_THROUGH标志,能够让数据无延迟写入磁盘。参考资料文件是否真的写入了磁盘?CreateFileA函数FlushFileBuffers函数使用FILE_FLAG_NO_BUFFERING

2022-05-25 15:23:12 1017

原创 禁用windows热键Ctrl+Alt+Delete

在网上搜了一通怎么用代码实现,只找到屏蔽常规的win键、alt+tab之类的hook方式,要禁用Ctrl+Alt+Del好像没有现成的代码。在搜资料的过程中找到一篇评论中,有人提议到Microsoft Answer论坛咨询,去该论坛上搜了一下屏蔽该组合,还真找到了。禁止ctrl+alt+del快捷键reg add "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /t REG_BINARY /d 00000

2022-05-16 15:20:06 2416

原创 C++实现固定大小内存池,支持多线程之间传递,防止运行时分配内存花费时间,优化性能

FixSizeMemoryPool.h#pragma once#include "BlockingQueue.h" //https://blog.youkuaiyun.com/weixin_42210846/article/details/124712457?spm=1001.2014.3001.5502class CFixSizeMemoryPool{public: CFixSizeMemoryPool(int num, int size); ~CFixSizeMemoryPool(); std:

2022-05-12 17:54:42 422

原创 C++实现阻塞队列

#ifndef BLCOKING_QUEUE_H#define BLCOKING_QUEUE_H#include <memory>#include <list>#include <mutex>#include <condition_variable>template<typename T>class BlockingQueue {public: BlockingQueue() = default; BlockingQueue

2022-05-11 16:05:19 1043 4

原创 Lru算法C++实现

#pragma once#include <unordered_map>#include <list>#include <utility>template<typename T = int>class Lru{ using value_type = typename std::list<std::pair<int, T>>::iterator;public: void printList(); void inse

2022-05-11 15:50:29 541

原创 多线程、机械硬盘、固态硬盘、内存映射相关资料

SSD和机械硬盘区别机械硬盘是机械结构,包含磁盘和磁头等,读写数据时,包含磁头寻道和盘面转动时间SSD是一种不同的结构,内部是浮栅晶体管,可以没有寻道这些操作,因此数据比机械硬盘快编程方面和磁盘的关系机械硬盘一般只有一个磁头,多线程写同一个文件是没用的,不可能多个扇区同时写入数据,反而会因为磁头不断切换导致写入速率下降,单线程顺序写入是最快的SSD在不同数据大小时,有不同的性能,有4K文件、4K文件-64线程、顺序大文件时的指标,可以使用磁盘性能测试工具测试,读写顺序大文件时好像内部就支持并行,不

2022-02-14 16:48:03 1009

原创 QLineEdit设置占位符颜色

// 设置字体颜色 QPalette palette; palette.setColor(QPalette::Text, Qt::white); ui.m_lineEdit->setPalette(palette); // 设置占位符颜色 QPalette palette; palette.setColor(QPalette::PlaceholderText, Qt::white); ui.m_lineEdit->setPalette(palette);...

2021-12-10 15:57:02 1346

原创 VS+QT报错error LNK2001: 无法解析的外部符号 public: virtual void * __cdecl CFileManager::qt_metacast(char const

描述:在VS项目头文件一开始没有添加QT信号槽机制,后续需要添加时继承QObject并声明Q_OBJECT宏,生成了moc文件仍然出现报错error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl MainWindow::metaObject(void)const “ error LNK2001: 无法解析的外部符号 "public: virtual void * __cdecl MainWindow::qt_

2021-11-15 14:11:04 6220 6

原创 QSS常用样式

最近在使用QT样式表为公司的产品设计UI,期间都是在网上搜集和查询QT手册Qt Style Sheets Reference章节,在此记录一下一些常用的控件属性背景image : url(:/loginView/Resource/png/login_logo.png); # 用于设置背景图片,路径为资源文件路径background-color : rgba(255, 255, 255, 0.1);background-color : transparent渐近方式background-colo

2021-10-28 17:47:08 274

原创 系统找不到指定的文件。NMAKE : fatal error U1077: “D:\CLion\bin\cmake\win\bin\cmake.exe”: 返回代码“0xffffffff”

问题描述:Clion CMake文件加载报错,错误信息描述主要如下,网上搜了半天,加了VS的一些环境变量,然后又按照错误提示信息添加了clion的cmake.exe的环境变量,均无效。Determining if the C compiler works failed with the following output:MT: command "CMAKE_MT-NOTFOUND /nologo /manifest CMakeFiles\cmTC_b3659.dir/intermediate.mani

2021-10-14 16:30:55 13064 1

原创 protobuf静态库隐藏符号的坑

概要:生成protobuf隐藏符号的静态库,并用该静态库生成so,再通过两者使用protobuf包含string字段的对象时,出现各种异常。详细描述:protobuf隐藏符号后生成静态库,使用该静态库再生成so(例如protoc生成的*.pb.cc文件)时,protobuf/sr/google/protobuf/fixmessage_lite.h文件中的fixed_address_empty_string对象会在该so中生成一个local对象。当同时使用生成的so和隐藏符号的静态库时(如main.cpp

2021-03-28 21:18:03 1138 4

原创 C++笔试题 游戏背包管理系统

请使用C++标准库中合理的数据结构设计一个游戏中的背包管理系统,可以存储的道具类型有游戏中的武器,装备,衣服等,还有一些带数量的金币,药水等的,设计使用一些增加,删除,修改物品的编程 API ,另外玩家身上有 8 个格子可以作为随身物品,作为可快速操作的道具。这里做一个假设,玩家需要使用整个背包中的道具,每次使用都必须先拿到身上后再使用,类似一个二级缓存系统。具体业务操作包括: 1 .从背包将道具到身上,如果满,淘汰最久没使用、最少使用的道具来替换; 2 .拾取物品,优先放到身上,如果没有空位,放背包; 3

2020-12-27 12:37:51 889

学习代码,包括测量、登录、多进程、多线程

学习代码,包括测量、登录、多进程、多线程

2024-03-05

C++游戏背包系统实现

C++笔试题 游戏背包系统

2020-12-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除