自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 资源 (6)
  • 收藏
  • 关注

原创 linux软件仓库搭建——搭建yum源以及第三方软件仓库

linux软件仓库搭建——搭建yum源以及第三方软件仓库

2022-10-15 21:28:24 589 1

原创 基于Redis网络模型的简易网络库

基于Redis网络模型的简易网络库

2022-08-25 00:33:18 223

原创 【Redis分析 】之网络库分析

Redis 网络库剖析

2022-08-25 00:01:00 340

原创 《linux高性能服务器编程》学习笔记之拥塞控制

linux高性能服务器编程 拥塞控制

2022-08-10 23:30:11 514

原创 cuda驱动版本显卡对应关系

cuda版本与其他依赖组件版本对比

2022-07-29 00:11:24 4005

原创 Centos 安装nvidia和cuda驱动

centos 8安装cuda 10.2驱动

2022-07-28 23:41:47 2376

原创 Redis中关于sdshdr8 结构体的理解和使用

解析sdshdr8#pragma pack(1) struct __attribute__((__packed__)) sdshdr8 { uint8_t len; /* used */ uint8_t alloc; /* excluding the header and null terminator */ unsigned char flags; /* 3 lsb of type, 5 unused bits */ char buf[]; };1字节对齐,sdshdr8结构体有

2022-01-11 00:21:34 776

原创 C++自带sort函数对vector容器元素进行排序

#include<iostream>#include<algorithm>#include<vector>#include <string>using namespace std;//自定义排序函数 bool sortFun(const string p1, const string p2){ string ss1 = p1.substr(6, 7); //获取子字符串。 int val1 = std::stoi(ss1...

2021-06-12 00:08:17 1411

原创 消息总线设计

消息框架设计消息定义消息格式:msg+消息类型+消息名称msg.sys.msgname。消息类型:以msg.sys前缀开头的为系统消息。msg.othername前缀开头的为用户自定义小。定义方式字符串宏定义平台消息统一存放 /include/msg.h头文件中。//msg.h#define MSG_SYS_MSGNAME "msg.plat.msgname"消息类型同步消息说明:发送消息立即到达接收端。使用场景:同一线程内部发送消息。异步消息

2020-08-20 00:35:05 820

原创 cef中c++和javascript数据交互

文章目录基础知识render进程browser进程进程通信CEF 进程间消息传递窗口绑定功能和窗口绑定功能和扩展使用JS回调总结基础知识cef中有两种进程,render进程和browser进程。render进程render进程负责显示web页面,运行javascript代码。v8引擎的初始化是在render进程中调用的,所以你的javascript代码是在render进程中执行的。即使你在browser进程中调用frame->ExecuteJavaScript()你也要清楚,代码是发

2020-08-19 22:53:29 1240

原创 STL库中的equal_range()

简介equal_range 根据键值,返回一对迭代器的pair对象。如果该键值在容器中存在,则pair对象中的第一个迭代器指向该键关联的第一个实例,第二个迭代器指向该键关联的最后一个实例的下一位置。如果找不到匹配的元素,则pair对象中的两个迭代器都将指向此键应该插入的位置。总之,equal_range返回迭代器位置区间 [ lower_bound, upper_bound )举例#include <iostream>#include <map>int main (){

2020-08-19 17:12:34 497

原创 选项模块实现

选项模块实现接口设计消息类型的定义流程用例图交互流程子页面注册使用选项对话框的构建过程创建非模态对话框对话框初始化时,尝试加载树结构选项配置文件格式:文件格式xml文件解析处理主对话框内的动作:存在问题:树结构代码实现参数读取与保存子页面实现对数据的读写Dll资源切换接口设计消息类型的定义子页面消息定义:用于通知主框架,子页面的创建状态(主框架监听的消息处理)#define MSG_PLUGIN_OPTIONS_PAGE_CREATED “msg.plugin.options.page_c

2020-08-19 00:51:38 260

原创 IO多路复用介绍

IO多路复用介绍IO多路复用介绍什么是IO多路复用IO多路复用适用如下场合:为什么有IO多路复用机制?同步阻塞(BIO)同步非阻塞(NIO)IO多路复用(现在的做法)IO多路复用的三种实现方式select 讲解select 基本原理:select缺点select函数接口select使用示例poll讲解poll函数接口poll使用示例poll缺点epoll讲解基本原理:epoll函数接口epoll使用示例epoll的优点epoll缺点epoll LT 与 ET模式的区别水平触发LT(level trigger

2020-08-18 17:13:37 366

原创 接收和发送缓冲区的设计

文章目录环形队列前言概念示意图环形队列与普通队列的区别设计图源码环形队列前言循环队列:队列有着先入先出的特性。但是对于队列如果删除队头以后剩下的空间将不会被释放,又由于队列只能由队尾插入这就导致被删除部分的空间被浪费。解决这个问题就是循环队列。循环队列顾名思义就是将队列串起来形成一个类似与环的结构。概念示意图内存中不存在环形数据结构,均由基础结构实现逻辑上的闭环效果环形队列与普通队列的区别front头部指针:一般队列:front头部指针初始值为-1,从队列取数据时,该值依次递增,

2020-08-18 00:43:02 755

原创 Windows WSAEventSelect 网络通信模型

文章目录Windows WSAEventSelect 网络通信模型WSAEventSelect模型介绍WSAEventSelect 用于服务器端**WSAWaitForMultipleEvents**WSAEnumNetworkEvents函数完整代码Windows WSAEventSelect 网络通信模型WSAEventSelect 网络通信模型是 Windows 系统上常用的一种异步 socket 通信模型,下面来详细介绍下其用法。WSAEventSelect模型介绍​ WSAEventSel

2020-08-17 23:45:32 571

原创 c++ map中key为结构体

map中key为结构体项目中需要将结构体作为hash的key,一开始用hash_map,但是结构体中多值比较一直失败,所以尝试了map。hash_map 查找速度会比map快,而且查找速度基本和数据量大小无关,属于常数级别;而map的查找速度是log(n)级别。hash还有hash函数的耗时。当有100w条记录的时候,map也只需要20次的比较,200w也只需要21次的比较!所以并不一定常数就比log(n) 小。hash_map对空间的要求要比map高很多,所以是以空间换时间的方法,而且,hash_m

2020-08-14 22:49:42 2968

转载 面试时如何不简单de介绍自己的项目经验?

在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果。第一印象就不好了,至少会感觉该候选人表述能力不强。一般来说,面试官会根据候选人介绍的项目背景来提问题,假设面试时会问10个问题,那么至少有5个问题会根据候 选人所介绍的项目背景来问,候选人如果没说好,那么就没法很好地引导后继问题了,就相当于把提问权完全

2020-08-11 23:05:55 182

原创 智能指针类

文章目录C++ 98/03 的尝试——std::auto_ptrC/C++ 语言最为人所诟病的特性之一就是存在内存泄露问题,因此后来的大多数语言都提供了内置内存分配与释放功能,有的甚至干脆对语言的使用者屏蔽了内存指针这一概念。这里不置贬褒,手动分配内存与手动释放内存有利也有弊,自动分配内存和自动释放内存亦如此,这是两种不同的设计哲学。有人认为,内存如此重要的东西怎么能放心交给用户去管理呢?而另外一些人则认为,内存如此重要的东西怎么能放心交给系统去管理呢?在 C/C++ 语言中,内存泄露的问题一直困扰着广大

2020-08-05 10:18:37 335

原创 回退重做数据管理实现

回退重做数据管理实现前言关于回退重做事件的实现逻辑用例图类图关于回退重做数据管理的实现实现代码分析目前实现框架的优势和局限优点局限前言​ 关于回退重做的实现之前,需要考虑目前到软件框架的执行流,目前平台操作的实现,是基于event事件进行实现的。而参数数据是基于Json数据进行解析获取的。继承监听类IPlantListerner,即可以通过消息进行传递数据。关于回退重做事件的实现逻辑用例图类图关于回退重做数据管理的实现实现代码分析1、定义回退操作的基类​ 对于用户需要关注回退重做事件

2020-08-03 00:11:32 533

转载 虚函数表详解

虚函数表详解概述类的虚表虚表指针动态绑定总结参考资料示例代码关键词:虚函数,虚表,虚表指针,动态绑定,多态概述​ 为了实现 C++ 的多态,C++ 使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。类的虚表虚表是一个指针数组,其元素是虚函数的指针,每个元素对应一个虚函数的函数指针。需要指出的是,普通的函数即非虚函数,其调用并不需要经过虚表,所以虚表的元素并不包括普通函数的函数指针。虚表内的条目,即虚函数指针的赋值发生在编译器的编译阶段,也就

2020-08-02 01:41:40 255

原创 数据结构查找算法(二分查找)

查找算法之二分查找二分查找二分算法步骤描述二分查找的应用场景:二分查找的实现(递归算+非递归)递归算非递归实现参考例子后记:二分查找二分查找算法,说白了就是在有序的数组里面给予一个存在数组里面的值key,然后将其先和数组中间的比较,如果key大于中间值,进行下一次mid后面的比较,直到找到相等的,就可以得到它的位置。前提: 线性表中的记录必须是关键字有序(通常从小到大),线性表必须采用顺序存储。基本思想: 取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关

2020-08-01 13:48:00 727

原创 内存问题排查工具 --- valgrind

概述在用C/C++编程的时候,经常会出现下面三种内存问题:内存泄漏悬挂指针多次释放同一块内存本系列文章简要介绍排查这三个问题的工具和方法,先看看ValgrindValgrindValgrind是一款可以监测内存使用情况、监测内存泄漏的工具。对于一些规模不是很大的应用程序,Valgrind是一把利器。ubuntu16.04上安装valgrind1、下载最新版本:http://valgrind.org/downloads/current.html#current2、tar -jxvf val

2020-07-30 00:21:38 417

原创 封装基于opc客户端通信机制的代理服务器COM动态库接口

封装基于opc客户端通信机制的代理服务器COM动态库接口项目综述时间工作负责模块背景:任务:**行动**:**结果**:实现逻辑项目综述时间2020年04月 – 2020年05月工作负责模块​ 基于OPC DA2.0 客户端通信机制,封装COM组件的Dll动态库接口,配合前端python调用接口,与OPC.Server服务器进行数据交互。背景:​ 项目之前是基于开源的opc 客户端dll文件,进行访问opc.server抓取数据的。但后期不能正常采集到数据了。任务:​ 基于OPC DA2.

2020-07-26 23:39:30 226

原创 windows进程通信 -- WM_COPYDATA消息

windows进程通信 -- WM_COPYDATA消息WM_COPYDATA消息发送端接收端WM_COPYDATA消息WM_COPYDATA消息,在win32中用来进行进程间的数据传输。typedef struct tagCOPYDATASTRUCT { // cds DWORD dwData; DWORD cbData; PVOID lpData; } COPYDATASTRUCT;其中dwData为32位的自定义数据, lpData为指向数据的指针,cbDa

2020-07-24 23:49:06 2597 1

原创 后端数据解析过程中,更新前端UI进度条

后端数据解析过程中,更新前端UI进度条前言源码解析源码测试逻辑前言在做前端ui进度条时,总会遇到后端数据解析过程中,前端ui不能同步更新的问题。为解决以上问题。想到最好的办法是通过消息进行通知,ui类监听此消息,进行ui刷新。源码解析源码开放API接口,可用其他模块进行交互#pragma once//进度条类接口class ICStatusProgress{public: ICStatusProgress() { }; ~ICStatusProgress() { };public:

2020-07-24 22:12:26 372

转载 FTP协议讲解

文章目录FTP 概述FTP 协议命令端口数据端口主动模式 (PORT)被动模式 (PASV)主要用到的 FTP 命令FTP 响应码Socket 编程的几个重要步骤实现 FTP 客户端上传下载功能客户端和 FTP 服务器建立 Socket 连接图 1. 客户端连接到服务器端清单 1. 客户端连接到 FTP 服务器,接收欢迎信息客户端登录 FTP 服务器图 2. 客户端登录 FTP 服务器清单 2. 客户端发送用户名和密码,登入 FTP 服务器客户端让 FTP 服务器进入被动模式图 3. 客户端让服务器进入被动

2020-07-15 00:31:53 289

原创 MFC关于按钮下拉菜单的功能实现

MFC关于按钮下拉菜单的功能实现前言参考类似word相应功能实现:产品工作需求设计:产品最终实现效果思路具体实现前言根据产品工作需求要求,要实现个剖切管理的功能,关于界面ui的实现,有一模块是类似word文档实现按钮下拉菜单功能的实现。这块实现遇到不少坑,特总结一下经验,为后人少掉坑。参考类似word相应功能实现:产品工作需求设计:产品最终实现效果思路参考了不少网上文档,没有找到合适的相关实现。但是给我提供了实现的思路:利用CMFCMenuButton按钮加上CMenu菜单按钮,进行

2020-06-04 22:45:39 1151

原创 基于Window的 WSAEventSelect 网络通信模型

Windows WSAEventSelect 网络通信模型 WSAEventSelect 网络通信模型是 Windows 系统上常用的一种异步 socket 通信模型,下面来详细介绍下其用法。 WSAEVENTSELECT 用于服务器端 我们先从服务器端来看这个模型,在 Windows 系统上正常的一个服务器端 socket 通信流程是先初始化套接字库,然后创建侦听 socket,接着绑定 ip 地址和端口,再调用 listen 函数开启侦听。代码如下: //1. 初始化套接字库.

2020-05-31 16:14:14 1086

原创 Windows 的 WSAAsyncSelect 网络通信模型

Windows 的 WSAAsyncSelect 网络通信模型WSAAsyncSelect ** 是 Windows 系统非常常用一个网络通信模型,它的原理是将 socket 句柄绑定到一个 Windows 窗口上并利于 Windows 的窗口消息机制实现了网络有消息时调用窗口函数。WSAAsyncSelect ** 函数签名如下:int WSAAsyncSelect( SOCKET s, HWND hWnd, u_int wMsg, long lEvent);参数...

2020-05-31 16:00:56 479

原创 MFC 光标设置总结

函数功能分析LoadCursorA从与应用程序实例关联的可执行文件(. exe)加载指定的游标资源。语法HCURSOR LoadCursorA( HINSTANCE hInstance, LPCSTR lpCursorName);参数 hInstance 模块实例的句柄,其可执行文件包含要加载的游标。 lpCursorName 要加载的游标资源的名称。或者,该参数可以由低序字中的资源标识符和高序字中的零组成。也可以使用MAKEINTRESO...

2020-05-29 16:33:47 958

原创 mysql错误:Subquery returns more than 1 row

mysql错误:Subquery returns more than 1 rowMysql报错基于两个表信息解决方案:方案一:limit 1方案二:group_concat()方案三: any和some参考例子Mysql报错Mysql报错:1242 - Subquery returns more than 1 row错误的意思是指子查询结果多于一行。报错如下:mysql> selec...

2020-03-06 10:40:45 40854 4

原创 C++设计模式系列文章

设计模式系列代码资源:https://github.com/FengJungle/DesignPattern01.设计模式——设计模式概述博客地址:https://blog.csdn.net/sinat_21107433/article/details/10251348502.设计模式(二)——UML类图介绍博客地址:https://blog.csdn.net/sinat_21...

2020-01-04 22:44:13 168

原创 STL容器和迭代器(二)--Vector的实现原理剖析

Vector的实现原理剖析杂谈vector的实现原理以及实现机制实现机制:浮想联翩(问题):vector:向量API函数使用vector中的reserve和resize的比较我们先来看一下C++中对resize与reservede的表示:两者区别reserve与resize的相同点:C++之迭代器失效及解决解决迭代器失效的问题参考网址杂谈在学习C++的时候我们会接触两个库,一个是boost库,...

2020-01-02 19:04:12 438

原创 类的设计模式(1)--单例模式

单例模式描述UML图:单例代码分析测试代码总结描述单例的一般实现比较简单,下面是代码和UML图。由于构造函数是私有的,因此无法通过构造函数实例化,唯一的方法就是通过调用静态函数GetInstance。UML图:单例代码//Singleton.h class Singleton { public: static Singleton* GetInstance()...

2019-12-30 15:16:12 120

原创 C++之迭代器失效及解决

C++之迭代器失效及解决描述基于CStringList来实现数据插入删除代码逻辑描述代码实现崩溃界面显示分析基于链表式容器List来实现数据存储代码实现崩溃问题描述错误分析网上关于错误描述:关于迭代器失效总结解决方案:网络资料参考描述在霍尼韦尔门禁项目中,通过遍寻霍尼韦尔设备获取设备信息后,GotMessage会不断收到消息,并把消息数据添加到容器里面。在回调函数线程中,进行循环获取处理容器数...

2019-12-23 19:03:40 1185

原创 vs2019 加载符号慢,如何避免调试时加载符号

vs2019 加载符号慢,如何避免调试时加载符号用VS2013打开代码文件,按下F5进行调试,可以看到系统会自动加载符号。关闭调试,打开“工具”-“选项”-“调试”,在调试中找到符号选项在下图中取消勾选如下选项,确定并退出即可。总结用VS2013打开代码文件,按下F5进行调试,可以看到系统会自动加载符号。关闭调试,打开“工具”-“选项”-“调试”,在调试中找到符号选项在下图中取消勾选如下...

2019-12-05 17:59:04 16515 5

原创 VS编译问题汇总

VS编译问题汇总问题汇总:问题汇总:问题解决:error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1800”不匹配值“1900”https://blog.csdn.net/u012814856/article/details/76343540?utm_source=blogxgwz7MSB8041 MFC libraries are required for ...

2019-12-04 11:50:33 104

原创 关于结构体数组的使用

关于结构体数组的使用类型定义结构体定义map定义构建结构体数组结构体数组添加到map容器中查询类型定义结构体定义typedef struct DevStatueInfo{ CString sStatueId; CString sDescribe;};map定义map<CString, CString> m_devInfoMap;构建结构体数组static De...

2019-11-21 22:10:26 220

原创 C++面试总结

C++面试总结一、C-C++面试知识点总结二、C++面试总结三、C++面试总结之C++语言特性四、C++面试常问问题汇总五、网络总结:六、数据库总结七、C++面试总结之算法八、C++面试总结之操作系统一、C-C++面试知识点总结1、C/C++面试知识点总结(一)https://blog.csdn.net/qq_18297675/article/details/770752452、C/C++...

2019-11-05 23:29:47 368

原创 关于#ifdef _DEBUG失效问题

关于#ifdef _DEBUG失效问题前言现象显示问题解决前言今天跟进项目遇到了一个问题。问题描述:调用动态库dll库函数时,动态库API函数不能正常进行跟进。现象显示(1)异常图示一:而正常图示二为:问题描述:正常的“#define new DEBUG_NEW”是一直都是灰色显示,而本次发生错误时,无论是release模式还是debug模式,“#define new DEB...

2019-11-04 15:05:18 1475

MFC关于下拉菜单按钮源码实现

根据产品工作需求要求,要实现个剖切管理的功能,关于界面ui的实现,有一模块是类似word文档实现按钮下拉菜单功能的实现。这块实现遇到不少坑,特总结一下经验,为后人少掉坑。 ## 具体实现 - 开发工具:vs2019 - UI框架:MFC

2020-06-04

QtqmlDemo.rar

QML与C++混合编程。QML与C++混合编程就是使用QML高效便捷地构建UI,而C++则用来实现业务逻辑和复杂算法。代码实现demo。 相对应文档描述:https://blog.csdn.net/qq_34462436/article/details/101648827

2019-09-29

REGSTAR_src.zip

学习多线程之一:线程通信--利用事件对象 在线程之间传送信号可以使用事件对象,用MFC的CEvent来表示。一个事件对象有两种状态:信号态与非信号态。线程能监视于信号态的事件,以便在适当的时间完成对事件的操作。

2019-09-18

多线程.rar

多线程的实例讲解分为理论知识讲解,及相对应的demo进行定位分析。

2019-09-15

gdb调试基础知识.rar

分两部分进行讲解:gdb调试基础知识和代码用例学习,有完成的demo可供调试学习,帮助快速定位问题。

2019-09-15

空空如也

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

TA关注的人

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