C++
文章平均质量分 61
程序员陈子青
年少风流不看红飞翠舞
只把青春一炬
码得三行春 秋
展开
-
C++11 bind function forward 用法详解
它的主要作用是在函数模板中将传入的参数按照它们的值类别(左值或右值)进行转发,以保持它们的值类别不变,从而避免不必要的拷贝和移动操作。在转发的过程中,如果参数是左值引用类型,那么转发后的类型也是左值引用类型。如果参数是右值引用类型,那么转发后的类型也是右值引用类型。它的作用是将一个可调用对象(比如函数、函数指针、成员函数、成员函数指针等等)以及若干个参数绑定到一个新的函数对象上,形成一个新的可调用对象。返回一个新的函数对象,这个函数对象可以被调用,调用时会执行绑定后的可调用对象,并将绑定的参数传递给它。原创 2023-08-01 13:51:25 · 909 阅读 · 0 评论 -
C++17 文件与目录操作 <filesystem>
头文件提供了一组强大的工具来处理文件系统。你可以使用它来管理文件和目录,获取文件和目录的信息,以及执行文件操作。这些功能使得处理文件和目录变得更加容易,而且可移植性更好,因为头文件可以在多个平台上使用。原创 2023-03-03 16:54:53 · 8070 阅读 · 5 评论 -
详解Linux下的环境变量以及C++库文件和头文件、python库的配置
我们都习惯在Windows 上配置环境变量,例如 Windows设置系统环境变量即在path中添加配置路径即可;使用VS则在项目设置中配置库文件和头文件路径;使用vscode 则常用cmake编译,编写CMakeLists.txt 链接库文件或头文件即可。而在Linux 环境中,则需要记住一些常用命令和常量值,在此总结如下,以供参考。原创 2023-03-03 00:54:36 · 2624 阅读 · 0 评论 -
使用C++11 标准线程库实现跨平台的线程池-[源码分享]
【代码】使用C++11 标准线程库实现跨平台的线程池-[源码分享]原创 2022-08-31 16:51:57 · 1290 阅读 · 0 评论 -
Linux 线程与线程同步
在线程库函数中为我们提供了线程分离函数 pthread_detach(),调用这个函数之后指定的子线程就可以和主线程分离,当子线程退出的时候,其占用的内核资源就被系统的其他进程接管并回收了。retval: 二级指针,指向一级指针的地址,是一个传出参数,这个地址中存储了 pthread_exit () 传递出的数据,如果不需要这个参数,可以指定为 NULL。Linux 下线程ID的类型为无符号长整形,为了统一比较标准,提供了判断线程是否相同的函数,功能:判断两个线程ID是否是同一个。原创 2022-08-25 14:24:32 · 317 阅读 · 0 评论 -
d3d c++实现绘制辅助菜单界面-完整源码
1-界面通过d3d绘图实现,c++ d3d绘制方框、文字的函数封装见。注册热键的一般步骤 ,以HOME键为例。,该api注册完热键后,在窗口消息。中检测和处理热键的回调方法。2-控制通过注册热键实现。原创 2022-08-17 16:23:41 · 2407 阅读 · 13 评论 -
智能指针小记
可以有多个std::shared_ptr 指向同一地址,同一地址下只有当最后一个 std::shared_ptr释放的时候,才会释放其所占用的内存空间。调用 use_count(),返回有多少个std::shared_ptr 指针对象指向该对象指向的地址。reset(),将该地址指向地址置空,如果该对象是最后一个指向该地址的对象则释放地址。release 使指针指向nullptr , 返回该指针指向的实际地址。std::shared_ptr 会记录当前地址有多少个智能指针调用。.........原创 2022-08-15 16:38:05 · 355 阅读 · 0 评论 -
C++ 字符串各种类型转换的函数封装 【宝藏博客】
【函数封装】C++ 字符串各种类型转换的函数封装 【宝藏博客】原创 2022-08-04 22:06:05 · 577 阅读 · 0 评论 -
C++ 虚函数
虚函数表——每个包含了虚函数的类都包含一个虚表。x86下为4字节,指向虚函数表的地址,虚函数表的地址记录了该类重写的虚函数地址。抽象类特点无法实例化对象,子类必须重写抽象类中的纯虚函数,否则也属于抽象类。——virtual只能在函数内部声明或定义,不能出现在类的外部。——虚函数在子类和父类中必须拥有相同的参数列表和返回值(指针除外)——virtual修饰的函数是虚函数,表示可以被重写。——类对象无法调用虚函数,必须使用类指针。——final后缀,终止函数的重载。——虚函数不能是函数模板。...原创 2022-07-27 15:36:51 · 141 阅读 · 0 评论 -
函数调用方式_stdcall 、 _cdecl 、_thiscall
了解函数调用约定对你逆向反汇编的分析会提供极大帮助。__stdcall__stdcall的全称是standardcall。是C++的标准调用方式。函数参数的入栈顺序为从右到左入栈。函数返回时使用retnx指令,其中x为调整堆栈的字节数。这种方式叫做自动清栈。即被调用的函数的参数个数是固定的,调用者必须严格按照定义传递参数,一个不多,一个不少。堆栈平衡方式__stdcall自动清栈返回指令_stdcall使用retnx编译后函数的修饰名__cdecl。.........原创 2022-07-26 16:59:05 · 726 阅读 · 1 评论 -
游戏多开检测的几种实现方法及破解方法参考
游戏多开检测只是对游戏的进程数进行限制,分为事前检测、事中检测、和事后检测。事中检测和事后检测往往没有提示,是游戏公司封号、处罚的手段,事前检测即禁止游戏多开,本文介绍常见的几种禁止游戏多开的方法,并给出破解方法,仅供参考。............原创 2022-07-24 19:25:02 · 6752 阅读 · 0 评论 -
详解最实用的几种dll注入方式
要谈dll注入,首先则要了解dll,对dll的概念和使用不熟悉的读者可移步所谓DLL注入就是将一个DLL放进某个进程的地址空间里,让它成为那个进程的一部分。这样该进程和dll共享同一内存空间,这样dll可以使用该进程的所有资源,随时监控程序运行。通常,我们将需要实现的功能封装生成dll文件,然后将其注入到某一进程中,从而在该进程中添加或扩展我们需要的功能。因此dll注入技术被广泛运用在恶意攻击、游戏外挂、木马等程序中。.........原创 2022-07-16 01:58:03 · 14276 阅读 · 0 评论 -
PE文件结构的介绍并使用C++读取PE文件信息
PE文件结构分为五个部分:DOS文件头DOS加载模块PE文件头区段表区段windows环境中会直接跳过前两个部分直接从PE文件头开始,所以直接略过这两个部分。PE文件头大小为224字节左右,因为有个可选头所以实际长度不定。里面包含许多关于PE文件的整体信息,这些信息主要是描述PE文件的大概情况,但是更细节信息在区段表中。如上图所示,PE文件头分为三个结构,第一个为签名字段,第二个为文件头字段,第三个为可选头字段。signature字段在一个PE文件中Signature字段被设置为4550h,ASCII码转载 2022-07-11 10:24:39 · 1683 阅读 · 0 评论 -
Windows配置文件的读写
WritePrivateProfileStringAGetPrivateProfileStringA此外还有 GetPrivateProfileInt ,GetPrivateProfileSection ,GetPrivateProfileSectionA 等。此外相关一些api函数:获取当前进程的目录GetCurrentDirectoryA获取当前进程的模块文件路径GetModuleFileNameA 若要查找由另一个进程加载的模块的文件,请使用 GetModuleFileNameEx 函数。......原创 2022-07-08 10:06:38 · 458 阅读 · 0 评论 -
Windows下文件操作总结
C语言文件流类型 FILE ,一般定义为指针类型,文件操作主要使用以下APIfopen fopen_s fwrite fputs fread fgets fgetc fseekfseek用来调整文件指针的位置,原型如下C语言打开文件的方式如下 示例代码如下 C++文件操作操作文件的三大类:ofstream: 写操作ifstream: 读操作fstream: 读写操作写文件步骤如下:包含头文件#include < fstream >创建流对象ofstream of原创 2022-07-05 15:31:47 · 892 阅读 · 1 评论 -
Windows动态链接库使用详解
目录概念生成dll文件导出函数使用方法C++共享函数库有两种方式,动态库和静态库,动态链接库提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 文件中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。使用vs创建dll动态链接库项目,vs自动生成代码解析如下图。当我们需要给使用dll库的开发者提供可调用函数时,我们需要将自己编写的功能函数进行导出,在vs下导出的方式有很多,最常用的方法是在需要导出的函数前加 关键字 _declspec(dll原创 2022-07-05 10:53:38 · 2030 阅读 · 2 评论 -
Window下线程与线程同步总结
Windows线程的使用与线程同步原创 2022-07-01 12:11:13 · 627 阅读 · 0 评论 -
C语言实现QQ聊天室小项目 [完整源码]
聊天小项目用于练习Windows下的 tcp socket编程和线程同步,其中send 和 recv 使用,对tcp数据传输时经常遇到的中文乱码、数据残缺等问题有示范和纠正作用。原创 2022-06-30 20:50:19 · 2785 阅读 · 0 评论 -
windows编程-遍历路径下所有文件
遍历文件信息原创 2022-06-30 02:08:44 · 356 阅读 · 0 评论 -
c++网络编程Tcp大数据文件传输
TCP网络通信使用send 和 recv 进行数据传输往往会导致文件传输不完整,因此本文提供对两种api的封装使得可以传输完整的大数据文件。原创 2022-06-29 18:13:44 · 1701 阅读 · 0 评论 -
30天算法寒假集训营,想学算法的人来。
原创 2021-12-30 22:42:04 · 374 阅读 · 0 评论 -
Qt TCP网络通信基础及其聊天小项目案例
全文点击Qt TCP网络通信及聊天项目源码、原创 2021-11-17 19:01:34 · 629 阅读 · 0 评论 -
IO多路复用之epoll
注:文章转自:爱编程的大丙 原链接:https://subingwen.cn/linux/epoll/详情排版 : 我的编程小屋1. 概述epoll 全称 eventpoll,是 linux 内核实现 IO 多路转接 / 复用(IO multiplexing)的一个实现。IO 多路转接的意思是在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。epoll 是 select 和 poll 的升级版,相较于这两个前辈,epoll 改进了工作方式,因此它更加转载 2021-11-11 18:37:00 · 2866 阅读 · 1 评论 -
Linux网络编程基础及多线程并发案例
1.ip:端口 TCP/IP协议 2.socket 头文件 sys/socket.h 套接字对应程序猿来说就是一套网络通信的接口,使用这套接口就可以完成网络通信。 网络通信的主体主要分为两部分:客户端和服务器端 3.字节序 3.1 ittle-Endian -> 主机字节序 (小端) Big-Endian -> 网络字节序 (大端) 3.2 头文件:#include <arpa/...原创 2021-11-06 07:20:08 · 1589 阅读 · 0 评论 -
❤️ 图解图论❤️
首先,请大家看完后不要忘了一键三连哦~ 以下硬核总结图的常用搜索算法,收藏关注,不迷路~先看一幅思维导图原创 2021-10-02 02:03:35 · 335 阅读 · 1 评论 -
❤️ 详解KMP算法
由于KMP算法描述起来很抽象,所以很多人难以理解,那么这篇博客将帮你解决这个难题,带你彻底了解KMP的原理以及实现。KMP算法是一种改进的字符串匹配算法,KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next数组实现,next数组本身包含了模式串的局部匹配信息。算法时间复杂度 O(m+n)举个栗子,如给定一个长度为 m 的模式串S,以及一个长度为 n 模板串P,判断 P 是否是 S 的字串要想真正了解KM...原创 2021-09-27 18:06:39 · 1011 阅读 · 6 评论 -
NOIP基础算法:双指针、二分、前缀和、差分
目录★★ 双指针★★★★ 二分★浮点数二分★ 一维前缀和、差分★ ★ ★ 二维前缀和、差分★ 难度指数 (个人看法,因人而异)★★ 双指针for (int i = 0, j = 0; i < n; i ++ ){ while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑}常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维...原创 2021-09-27 01:21:44 · 214 阅读 · 0 评论 -
❤️简单聊一聊入门级查找算法
目录查找定义及其属性二分查找穷举搜索并行查找查找定义及其属性查找 又称检索或查询,是指在查找表中找出满足一定条件的结点或记录对应的操作。 查找表 在计算机中,是指被查找的数据对象是由同一类型的记录构成的集合,如顺序表, 链表、二叉树和哈希表等 查找效率 查找算法中的基本运算是通过记录的关键字与给定值进行比较,所以查找的效率 同常取决于比较所花的时间,而时间取决于比较的次数。通常以关键字与给定值进行比较的记录 个数的平均值来计算。查找操作及分类 操作原创 2021-08-11 16:50:12 · 190 阅读 · 0 评论 -
❤️ 「七大排序算法」
七大排序预览 排序算法 平均时间复杂度 最好情况 最坏情况 排序方式 稳定性 冒泡排序 O(n * n) O(n) O(n * n) In-place 稳定 选择排序 O(n * n) O(n * n) .原创 2021-08-10 07:26:14 · 645 阅读 · 0 评论 -
❤️ 「呕心之作」 一篇博客带你精通「 五大核心算法」❤️
目录一、分治法思想原理具体步骤例题1算法结语二、动态规划算法思想原理具体步骤算法实现算法结语三、回溯算法 算法思想 基本步骤 例题2 算法实现算法结语四、贪心算法 思想原理基本步骤例题3算法实现算法结语五、分支定界法 算法原理算法步骤例题算法实现算法结语博文结语写在前面:很多人...原创 2021-08-01 05:17:34 · 1186 阅读 · 7 评论 -
「个人记录 」C++ 容器 find() 算法使用过程中的系列问题
目录find()函数定义问题1:空指针错误问题2:自定义类型比较问题3:容器中元素类型为指针find()函数定义template<class InputIterator, class Type>InputIterator find(InputIterator _First, //一个输入迭代器,它在要搜索指定值的范围内寻址第一个元素的位置。InputIterator _Last, //一个输入迭代器,用于在要搜索的指定值范围内的最后一个元素之后的位置进行寻址。c原创 2021-07-30 18:04:52 · 507 阅读 · 0 评论 -
「 硬核分享」 ❤️ QQ连连看自动消除外挂完整源码❤️「 复制即用」
逆向过程:1.分析游戏棋盘大小:19 *11棋盘基址:00199F5C CE工具下载: QQ群:894356239游戏标题:QQ游戏 - 连连看角色版2.读取棋盘数据 //1.获取游戏窗口句柄 HWND hw = FindWindowA(0, "QQ游戏 - 连连看角色版"); //2.获取进程id DWORD pid; GetWindowThreadProcessId(hw, &pid); ...原创 2021-06-26 12:52:42 · 3900 阅读 · 1 评论 -
C/C++数据库实战-推箱子小游戏进化版 完整源码分享
游戏效果图设计思路:将用户信息保存到数据库,需要用户登录将地图信息保存到数据库,实现切换关卡1.数据库设计,如图:2. 封装连接数据库操作,代码如下:#include "database.h"#include <stdio.h>/*****************************************功能:通过ID获取关卡信息*输入:* level - 关卡信息结构体* level_id - 关卡ID**返回值:.原创 2021-04-12 18:05:16 · 515 阅读 · 0 评论 -
C/C++ 实现推箱子小游戏 完整源码 复制即用
项目使用Eesy-X库.效果图:项目中使用到的图片素材请添加本人q3492625357 获取完整源码:// 推箱子.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。////author:See QQ3492625357 图片素材请添加QQ#include <iostream>#include<graphics.h>#include<conio.h>#define BX 140#define BY.原创 2021-03-31 14:10:54 · 2079 阅读 · 0 评论 -
Easy-X的简单使用----练习设计界面的几个简单小项目
使用到的几个函数:初始化界面大小:initgraph()设置背景颜色:setbkcolor()填充背景: cleardevice()设置画笔线条颜色: setlinecolor(RGB(255, 0, 0));设置画笔线条的样式:setlinestyle(PS_SOLID,10);画圆:circle()设置文本颜色:settextcolor(RGB(255, 255, 0));设置文本大小和字体:settextstyle(120,0,L"微软雅黑");书写文字:outt...原创 2021-03-30 21:46:44 · 1278 阅读 · 2 评论 -
C++ MFC 编写的播放器软件 附 视频操作(播放-暂停)类源码
效果图如下:、关于视频操作的封装 使用了VLC库,分享至此头文件#pragma once#include"pch.h"#include "vlc.h"#pragma comment(lib,"libvlccore.lib")#pragma comment(lib,"libvlc.lib")class CPlay{public: /* * 默认构造函数 */ CPlay() { m_pVlcPlayer = nullptr; m_pVlcI..原创 2021-01-23 19:29:51 · 1017 阅读 · 0 评论 -
「 硬核教学」 ❤️ C语言编写扫雷游戏外挂❤️「 完整源码」
有没有羡慕学霸们在机房里 潇洒如意地玩着扫雷无限通关,而你连初级都通关不了? 有没有想过你为什么那么蠢? .... 但你别慌,其实我也是。 于是乎今天给大家来个扫雷外挂的详细教学,避免以后出现像我这样的扫雷菜鸡(bi mian xue ba zhuang bei)。 效果大概这样: 打开扫雷游戏 开启外挂:啪,就过关了。下面详细说明开发过程:第一步:使用CE找出棋盘的基址分析:棋盘是x*y的矩形,第一格的地址很可能是矩形的基...原创 2021-01-22 23:15:31 · 4030 阅读 · 2 评论 -
远程控制——C++编程入门项目(完整源码)
在socket通信基础下,很容易实现简易的远程控制,这里使用本机做了演示,抛砖引玉,为大家提供更强大的远控思路。效果:控制端 输入cmd命令,被控制端计算机执行命令。如图提示等待命令输入,当输入calc,回车时,被控制端接受命令,并打开了计算器。此时计算器被打开,并不是此程序所为,而是被控制端接受到 calc 命令并执行,以此为思路实现远控。比如:Nslookup查看ip 地址比如:write 打开对方写字版你可以查看CMD命令大全......原创 2020-12-17 13:35:12 · 11127 阅读 · 6 评论 -
MFC 使用StaticText 显示图像 并设置对话框背景——详细步骤
今天使用MFC开发一个小软件,在设置背景图时,在网上找了一些资料,大多都使用DC绘图,比较麻烦,很多文章说的方法也都是无效的,在整理和摸索之后,我将本人的此种实现方法分享出来,希望对你有所帮助。文章末尾不要吝啬你的点赞喲。静态文本框显示图像1. 拖放StaticText 控件2.右键属性,修改其ID名称,如PIC3. 四行代码: 通过ID获取控件指针(当然也可以创建其变量,使用变量操作)修改风格获取HBITMAP图像设置图像 C...原创 2020-12-17 12:39:49 · 2512 阅读 · 1 评论 -
Windows Socket编程之TCP通信
效果如下:服务器端:// socket_demo.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#define _WINSOCK_DEPRECATED_NO_WARNINGS#include <winsock2.h>#include <iostream>#include<windows.h>#pragma comment(lib, "ws2_32.lib")bool CreateServerSocket(.原创 2020-12-13 19:50:08 · 1265 阅读 · 0 评论