![](https://img-blog.csdnimg.cn/b3e380ae802749e4b38d5ec1b9d4df52.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
学习 - C/C++ 序二 经验
文章平均质量分 79
C/C++ 序而:工作两年之后的所遇所学
偕臧x
这个作者很懒,什么都没留下…
展开
-
VS2022 And QtCreator10 调试 Qt 源码教程
编译工程,模式为 Debug、Win32,设置断点【F9】后,开启运行调试【F5】,卡住断点,再怕【F11】 进入任何一个 Qt 源码的函数调试, QWidget::show() 函数为例。编译工程,模式为 Debug、32bit,设置断点【F9】后,开启运行调试【F5】,卡住断点,再怕【F11】 进入任何一个 Qt 源码的函数调试, QWidget::show() 函数为例。快捷键【Ctrl + K】快速定位左下角,然后搜索 Qt 源码的文件名以及自定义项目的文件名称,迅速切换,体验极佳。原创 2023-07-01 16:08:18 · 2657 阅读 · 2 评论 -
基于 QT 开发 FLIPPED :简易且漂亮的跨平台截图贴图软件
简 述: 新开发的一款跨平台的截图贴图的软件作品, **FLIPPED**:Simple and beautiful cross-platform screenshot software。原创 2023-04-10 09:57:55 · 1891 阅读 · 0 评论 -
C++ 实现智能指针:shared_ptr 和 unique_ptr
C++11 智能指针的深入分析,和动手实现简版的智能指针 std::shared_ptr 、std::unique_ptr原创 2022-12-20 08:00:00 · 2119 阅读 · 0 评论 -
C++ 类的六个特殊成员函数
分析 C++ Class 的六个特殊成员函数,并且手动实现一番;more。原创 2022-12-19 07:30:00 · 809 阅读 · 0 评论 -
STL 的 std::set 创建自定义结构体的对象,定义严格弱序的比较函数
**简 述:** 对于 `STL` 中 `std::set` 创建自定义结构体的对象,发现使用 **"函数对象"** 和 **"定义普通函数 + decltype"** 两种方式会有差异,且其中一种书写容易崩溃,探究一番后,值得记录一下。原创 2022-08-17 07:30:00 · 819 阅读 · 0 评论 -
C++ 标志位使用:校验、添加、删除
C++ 标志位使用:校验、添加、删除;偶尔会遇到需要设置一些属性,在此记录一番,方便下次使用。原创 2022-08-16 07:45:00 · 1291 阅读 · 2 评论 -
STL 中给 vector 去重的三种方法
**简 述:** 对 `std::vector` 中的元素进行去重,其中元素为自定义结构体类型。提供三种思路,并且附上详细示例和分析。关键词内容:1. C++ `std::unique` 函数去重,却导致的 `std::vector` 发生改变(遇内存泄漏)2. c++ `std::vector` 利用 `std::set` 去重(自定义结构体创建 set 对象的方法)3. 自定义结构体在 `sort` 和 `unique` 中 `比较 / 等于` 函数书写(重载、函数、函数对象;严格弱序、相等)原创 2022-08-15 07:30:00 · 4386 阅读 · 0 评论 -
Misleading indentation; statement is not part of the previous ‘if‘
使用的 Qt 升级到了 5.15.2,然后 IDE 编译报警告⚠如下,强迫症犯了,得消除掉。学习,附学习由浅入深的目录。,即可消除此警告⚠;原创 2022-08-08 07:30:00 · 1623 阅读 · 0 评论 -
Windows 编程之 WINUSERAPI 和 WINAPI 区别
_declspec(dllimport)表示你告诉编译器要显式的从dll导入函数;尤其当类中有static成员时,没有它基本都会Link失败。效果,调用WindowsAPI时,发现其函数得定义如下,发现这两个宏有点陌生,故有点出神,于是查了查。表示参数入栈时,是从右往左一次顺序入栈的。其它调用约定自行Googel关键词函数调用约定。粗略看作关键词__declspec(dllimport);WindowAPI中经常遇到的。学习,附学习由浅入深的目录。从两层含义定义可知,............原创 2022-07-19 19:58:41 · 729 阅读 · 1 评论 -
创建 QKeySequenceEdit() 后,显示方块■◆乱码
简 述: 创建的 Qt QKeySequenceEdit 快捷键编辑框,显示方块■◆乱码。💻 📎 📎 产生口字的方块乱码原因,通常是以 UTF-8 方式读取 GBK 编码的中文。很明显,且检验过所有编码相关,根本不是我的原因,是 出现了问题。PS: 如果不懂乱码原因和如何解决,请参考如下 QtExamples 的第六部分章节,摘取其中两篇:极简和根因探究最后发现是因为混用了,导致的正确的用法,参考 Qt Assistant.........原创 2022-07-17 07:30:00 · 629 阅读 · 0 评论 -
LPSTR/LPCSTR/LPTSTR/HWND/HANDLE/HMODULE/HINSTANCE 等含义和区别
简 述: 编程中常见的一些类型意义、区别和讲解定义Data typeDescriptiondeclaredPVOIDA pointer to any type.WinNT.hLPVOIDA pointer to any type.WinDef.hLPSTRA pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information,原创 2022-07-16 07:30:00 · 502 阅读 · 0 评论 -
Lambda 表达式详解
简 述: 详解 表达式的基础使用,原理,和使用场景。• 捕获表列,捕获当前作用域内的变量,用逗号分隔• 参数列表• 可选限定符,可选,mutable允许在函数体内改变按值捕获的变量• 异常说明符,可选,noexcept• 返回值类型,可选,多数情况可由编译器自动推导• 函数体[var] 按值捕获,将 var 按值复制到 Lambda 作用域,默认不能修改[&var] 按引用捕获,将 var 的引用捕获到 Lambda 作用域[=] 捕获所在作用域内全部变量的值[&] 捕获所在作用域内全部变量原创 2022-07-15 07:30:00 · 751 阅读 · 0 评论 -
Qt新弹窗不响应键盘按键,难道也是无焦点?
文章目录背景分析托盘相关代码如下截图窗口代码如下:根因解决系列地址简 述: 全局热键召唤的新窗口后,🖱不点击此程序的托盘图标和相关窗口(但是可以移动,开启光标跟踪),只点击键盘按键却无响应。但🖱点击过后,却可以响应⌨按键了。解决此怪异问题。本文初发于 “偕臧的小站”,同步转载于此。💻 win10 21H2 📎 Qt 5.12.11背景 写截图时,当源码在 IDE 中,通过编译和运行后,右下加出现一个托盘图标,表示程序在运行中,此时通过快捷键 F6 可顺利召唤出截图窗口(无标原创 2022-05-09 07:30:00 · 2054 阅读 · 0 评论 -
Visual Studio 断点调试之箭头偏移进错函数,捉虫记
文章目录背景问题解决简 述: Visual Studio 断点调试之箭头偏移进错函数,怪异现象之捉🐛记。本文初发于 “偕臧的小站”,同步转载于此。背景好久没有遇到这么有趣的 Bug 了,来抓一个调试指针出现偏移错误❌的🐛。在 C++ 实现的派生类和类中重写的两个虚函数 A、B 后,代码实写调用 A 函数,断点 Debug 调试却命中 B 函数。💻 win10 21H2 📎 Visual Studio 2019MyCollectLogImpl 为 IMyCollectLog 的一个原创 2022-04-29 07:30:00 · 1837 阅读 · 0 评论 -
Visual Studio 2019 进行远程调试
文章目录步骤总结系列地址简 述: 纪录一下用 Visual Studio 2019 进行远程调试;有感于某些 🔍 的文章怎么写的又臭又长,看半天还不明所以!!!本文初发于 “偕臧的小站”,同步转载于此。步骤环境: 💻 win10 21H2 📎 Visual Studio 2019 📎 调试 x86 的dll将本机的 x86 文件夹拷贝到虚拟机中;路径为 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\原创 2022-03-30 20:21:46 · 3203 阅读 · 1 评论 -
获取当前模块 exe / dll 的版本号信息
文章目录方法一方法二『荐』系列地址简 述: 获取 windows 下当前代码模块的 dll 的版本号信息;或者指定路径下的 exe / dll 的版本号。本文初发于 “偕臧的小站”,同步转载于此。💻: win10 21H2 📎 Visual Studio 2019方法一使用 GetFileVersionInfoSize、GetFileVersionInfo、VerQueryValue 三个函数来获取版本信息。通过参考其它思路,后整合手写一份自己所需要的代码,不过这方式缺陷是获取的原创 2022-03-31 07:30:00 · 2632 阅读 · 0 评论 -
WinDbg:调试之附加进程生成 dmp『二』
文章目录正文系列地址简 述: 上一篇有些 WinDbg 的基础用法,本篇开始使用 WinDbg 附加进程调试,卡住崩溃后生成 dmp 文件。本文初发于 “偕臧的小站”,同步转载于此。正文💻: win10 21H2 📎 WinDbg 10.0.22000.194步骤如下管理员运行 windbg.exe“File - Attach to a process…” 附加进程此时按下 F5 开启调试在附加的程序进行 UI 操作,等待崩溃中断,此时 WinDbug 界面原创 2022-03-19 07:00:00 · 1599 阅读 · 3 评论 -
WinDbg:入门分析 dmp 文件『一』
文章目录关联背景正文介绍使用详细例子总结系列地址简 述: 初次在 Win 10 使用 WinDbg 分析 .dmp 文件,定位和分析原因,作为基础入门教程帮助后来者。本文初发于 “偕臧的小站”,同步转载于此。关联附相关目录,随着后续使用更新WinDbg:入门分析 dmp 文件『一』背景此前未曾接触过 WinDbg ,亦未曾分析过 dmp 。现如今上手数月后,回头来写一下此工具在 Win 10 下的基本用法;希望帮助后来者先入个门。大道漫漫兮~,道阻且长;正文介绍『.d原创 2022-03-17 23:29:23 · 21912 阅读 · 3 评论 -
一个微软自带的 notepad 所导致的问题
文章目录背景回车换行CRLF打印机时代计算机时代分析解决系列地址简 述: 纪录一个 Microsoft 自带的 notepad 所导致的问题。测试小姐姐,报一个 bug 让康康先,说软件的日志在 Win10 x64 上,输出显示会多一行空格,而 Win7 x86 下则不会多此空行。我听后???同一个 .dll 还能跑出不同效果来????本文初发于 “偕臧的小站”,同步转载于此。背景本想去敏后截图,但想了下还是直接写了例子演示,大概如图的 bug;💻为 win10 21H2 📎 win原创 2022-03-15 17:47:33 · 1977 阅读 · 0 评论 -
Log:日志之 Spdlog 核心构成『三』
文章目录关联简介LoggersSinks日志级别注意事项系列地址简 述: 通过上一篇已经让 spdlog 跑了起来,现在来认识一下这个库的核心相关知识。此摘择一些核心组成的知识,降低新手门槛。本文初发于 “偕臧的小站”,同步转载于此。关联此日志模块成一个小的系列篇章,附上关联文章目录可直达;Log:日志选型调研『一』Log:日志之 Spdlog 极简用法示范『二』Log:日志之 Spdlog 核心构成『三』简介spdlog 由两部分组成:『Sinks + Loggers』。原创 2022-03-14 21:30:00 · 2118 阅读 · 0 评论 -
Log:日志之 Spdlog 极简用法示范『二』
文章目录关联背景用法示范spdlog 输出到终端spdlog 输出到文件其它用法成系列地址简 述: 有上一篇中通过日志调研选型,决定采用 Spdlog 后,此篇开始介绍一些基础入门,先让代码能够跑起来,放上用法示范,再去研究细节用法。本文初发于 “偕臧的小站”,同步转载于此。关联此日志模块会一个小的系列篇章,附上关联文章目录可直达;Log:日志选型调研『一』背景先简单看下 spdlog 的官方介绍:Very fast, header-only/compiled, C+原创 2022-03-14 20:59:36 · 2075 阅读 · 2 评论 -
Log:日志选型调研『一』
文章目录关联背景日志库调研Google 关键词表格总结log4cxxLog4cpplog4clog4cplusgoogle glogz-logspdlogc-logsyslog-ngGitHub 搜索GItHub 村外有村总结成系列地址简 述: 准备在个人的项目中添加 Log 日志模块,便于项目日后定位和调试。因前面数月,有感受到了日志的威力,故决定调研后选取一个合适的日志模块 spdlog 。最后意外的惊喜发现,检索需要一点技巧,可遇村外有村,好风凭借力。本文初发于 “偕臧的小站”,同步转载原创 2022-03-14 07:00:00 · 2457 阅读 · 0 评论 -
入门分析,多线程竞争为何不安全?
简介: 入门级别讲解,分析多线程竞争同一共享资源,运行结果不符预期的原因;故书一简例,讲解何谓 非线程安全 ?以及使用 atomic 和 mutex 来解决此缺陷场景,最终 线程安全 获得预期结果。文章目录受众场景分析解决方案一(atomic)方案二(mutex)额外探索源码提示本文初发于 “偕臧的小站”,同步转载于此。受众有基本的多线程理论知识,但未曾深入研究 “运行不符预期结果” 的萌新?亦或对多线程未曾了解,道听途说、知识点模糊,实际不甚理解原理的读者。都是本文的最佳读者。若已早熟原创 2022-01-19 07:15:00 · 446 阅读 · 2 评论 -
.inl在C++工程的意义
简 述: .inl 在 C++ 大型工程项目中的作用?文章目录背景理解本文初发于 “偕臧的小站”,同步转载于此。背景最近看安全项目代码,发现基础公共库里面使用到了大量的内联 __inline 、字符串 typedef 替换模板 template < typename TYPE> 等;在公共 src 文件夹中,仅有 .h 和 .inl 文件,而无一 .cpp 文件?理解.inl 文件是什么?可以理解为 .cpp 文件文件后缀名是毫无意义的,最好的例子就是原创 2022-01-19 07:00:00 · 698 阅读 · 0 评论