自定义博客皮肤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)
  • 收藏
  • 关注

原创 非必现BUG修改,WinDbg调试dump信息,分析崩溃

本文无图,只提供一个思路,算是这两天处理问题的一个心得,供参考。最近两天工作中出现了一个非必现的BUG ,由于是内部使用的PE文件,每次测试都需要签名,如果DEBUG模式会非常麻烦,因此采用分析dump信息的方式。(VS程序怎么生成dump,搜一下配置即可)用WinDbg 打开 dump文件(再搜,有非常多的教程,只看打开和配置符号就行)Open crash dump - > 打开dump文件Sysbol path file -> 配置pcb文件路径 (随便...

2021-11-05 11:54:00 424

原创 【C++】RC4加密算法

RC4是一种对称加密算法,特点是算法简单,运行速度快,而且密钥长度是可变的,可变范围为1-256字节(8-2048比特)。本博文中的内容是基于Eric Young提供的公共封装类实现的,与网上能找到的RC4.h类似,如果需要详细了解RC4的,移步-》传送门namespace {void RC4_Encrypt(const unsigned char* cleartext, int length, const std::string& key, unsigned char* ciphe

2021-10-17 00:45:38 1535

原创 【C++】共享内存实现,源码供参考

基础参考《Windows核心编程》第17章。#define BUF_SIZE 4096Char inBuffer[] = "要写到内存中的内容";创建共享内存:HANDLE hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, // 物理文件句柄 NULL, // 默认安全级别 PAGE_READWRITE, // 可读可写 0,

2021-09-15 18:03:19 618

原创 【C++】CString转LPCSTR

最早接触Json其实是在用Java的时候,最近刚好用到,整理一下。C++ 中使用jsoncpp,用来以Json的格式进行解析传值。它的格式是这样的:”ERROR CODE“ : 0"AAAA" : "string""Data" : { "A[]" : B[] "test" :: 1231 }json核心部分 Json::ValueJson::WriterJso...

2021-09-06 20:00:31 1022

原创 【C++ 】auto 技巧

最近在编程的过程中,遇到一个很好用的东西,分享一下auto是一个占位符,如果你是小白的话,最好去理解一下占位符的意思,以免在便利的同时带来其他麻烦它的功能是 按照后边的值,来推测这个变量的类型。尤其在使用STL中使用非常方便。例如:使用迭代器的时候std::map<int, int >::iterator it = map.begin();如果使用auto话,可以直接写成auto it = map.begin();...

2020-11-23 20:49:13 193

原创 const wchar_t * 不能用于初始化 const char*

字面看是宽字符问题,我是老版本程序 或 不同系统的程序放到VS中出现的问题为什么不行网上能搜到非常详细的办法处理办法 : 项目/ 属性 /常规 中 更改下边的字符集, 一般默认都是Unicode ,更改为 宽字符集(使用多字节字符集)...

2020-08-20 10:10:45 2240

原创 【C++】#pragma warning 作用

#pragma warning开发人员可以将警告视为,错误处理,也可以取消错误预警#pragma warning (error: 6260)将waring 作为一个错误#pragma warning(disable:4127)将waring禁掉#pragma warning(enbale:4127)将禁用的警告启用...

2020-08-10 09:45:38 345

原创 在VS下使用QT时,.ui更改之后无效

重新打开.ui文件,发现控件拖拽上去了,名字也确实修改成功了,但在项目中就像是没有更新上去一样重新编译一下.ui文件编译后,对整个解决方案重新扫描特别麻烦,差不多每次都要这样操作 ,如果有更简便的处理方式请告知...

2020-07-27 11:22:05 914

原创 VS报错 无法定位程序输入点于****** ,**.dll上

网上搜的办法基本都是试过了有几种情况吧 ,挨个试1 , 系统里没有 ,贴进去32还是64的文件夹下边,打开终端注册一下 (Win+R)regsvr32 ***.dll(反正我没成功,不懂什么原因)2, lib 和 dll的版本不匹配 ,自行调整3,可是不是这个.dll的原因,因为确实其他dll造成当前这个报出的错误,从别的工程文件里对照着看看吧。以上。...

2020-07-25 14:51:07 789

原创 VS-QT- #include<*> 组件无法找到源文件 解决方法

#include <QtWidgets/QMainWindow> 没问题#include<QPushButton> 无法找到的可能是误删造成的项目-属性-C/C++ - 常规 - 附加包含目录 把 从左下角 从父级或项目默认继承 勾选上。

2020-07-15 10:31:02 1920

原创 记录关于#include “jpeglib.h“引用的问题

想要把图像转成Jpeg格式,不用opencv的话,需要一个用到libjpeg库网上搜到下载安装太繁琐了,只用来转换格式不用那么麻烦使用VS工具,libjpeg.lib,jconfig.h,jmorecfg.h,jpeglib.h 这四个拷贝到工作空间下正常把库文件和头文件添加到配置里。libjpeg是c 开发需要的, 写C++时引用头文件这样写extern "C" {#include "jpeglib.h"};...

2020-07-07 16:48:17 1548 1

原创 QT---心得体会

周六,一个加班日,手头暂无工作任务,闲暇写下。 使用QT大概有4个月了,上学那会一直想也没浅下心来学,疫情期间,机缘巧合的学了一下,也许是命运吧,工作后就也刚好用上。(上边都是废话,可略) 期初从资料,都是从网络上找的,归类详细,但内容不详细,初学可以大概扫视一遍有个大概的印象,然后跟着教学视频手敲一些,入门的视频资源特别多,可以从B站随便找,大部门都是教客户端的,驱动程序的需要多找找,本人购买的课程不做安利,感觉跟免费资源差不多,无非就是有解答问题的人,其实发帖求助也是可以结...

2020-06-20 15:18:41 3310 1

原创 QT---QTableWidget的点击事件cellDoubleClicked运行无效,可能是写法问题

出现的问题可能是QT版本写法问题排查问题过程:首先程序没有报错,看信号与槽是否连接正确,DEBUG后无法跳进SLOT函数中,觉得可能是连接出了问题,分析后改用 QT5的写法QT4写法connect(QTableWidget, SIGNAL(cellDoubleClicked(int row, int column)), this, SLOT(doubleclickplay(int, int)));QT5写法connect(&QTableWidget, &QTa..

2020-06-12 11:39:16 2684

原创 C++指针的基础概念----左值右值

最近在学习智能指针,很容易就见到左值右值的概念。搜索+个人理解。左值(L-value):左值可以出现在赋值语句的左边或右边;右值(R-value): 右值只能出现在赋值语句的右边;右值是不能被赋值的,只读!左值 可以被赋值,有地址,可读可写。...

2020-06-09 20:08:38 413

原创 QT---父子窗体,过滤器问题

今天遇到一个小的问题,使用QT,通过点击鼠标,使一个窗口的全屏化,再次点击恢复。没用过滤器之前出现了一个,全屏之后,无法恢复原来大小的BUG。分析:鼠标点击触发之后,第一次使用可行,但将QWidget置于最上层,后续将无法触发。过滤器代码:头文件中的声明描述 bool eventFilter(QObject *, QEvent *); //事件过滤器源文件中bool MfcToQt::eventFilter(QObject *obj, QEvent *ev){ if (

2020-06-05 09:58:25 258

原创 C++中virtual 虚函数的作用介绍

1,介绍虚函数是定义在基类中的函数,子类必须对其进覆盖。在类中声明虚函数的格式: virtual void display();2,作用 (1)定义子类对象,并调用对象中未被子类覆盖的基类函数A。同时在该函数A中,又调用了子类覆盖的基类函数B。此刻将会调用基类中的函数B, 而我们原本是想调用是子类中的覆盖函数B。 而使用虚函数就可以解决这个问题。举个例:#inc...

2019-09-14 21:20:09 3597

转载 关于构造函数与析构函数的问题

问题1:问:构造函数与析构函数是什么?区别是什么?答:构造函数:每个类都分别定义了它的对象被初始化的方式,类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数。构造函数的任务是初始化对象的数据成员,构造函数最重要的作用是创建对象本身。析构函数:析构函数初始化对象的非static数据成员,还可能做一些其他工作;析构函数释放对象使用的资源,并销毁对象非static数...

2019-09-12 22:34:03 492

原创 C++ 多态实现

多态多态的含义为 一个事物的多种形态,在C++程序设计张,多态性是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数。 一般多态分为两种1)静态多态也成为编译多态,主要包括参数多态,过载多态和强制多态。 参数多态:采用参数化模板,通过给出不同的类型参数,使的一个结构有多种类型。如C++语言中的函数模板和类模板。如 C++语言中的函数模板和类模...

2019-09-12 22:24:18 428

原创 数组和链表的区别

数组数组的特点内存上,系统分配一块连续的区域。 数组需要预留空间 ,定义的时候就要给定内存的大小,可能有点空间没有被使用,这也造成了数组利用率低。 在数组的起始位置,进行插入或删除操作的效率低(所有的元素都要移位)。 随机访问效率高,时间复杂度可以达到O(1)。 数组开辟的空间,在不够使用的时候需要进行扩容,扩容是重新申一个两倍的空间,将原数组的所有元素复制到新的数组中。 数组的...

2019-08-26 20:56:26 169

转载 常用的基础算法(必会)

优劣术语- 稳定性 原本a在b前,a=b,排序之后位置任然不变。不稳定性则相反- 内排序 所有排序都在内存中完成。外排序数据放磁盘,排序通过磁盘内存的数据传输- 事件复杂度 算法执行耗费的时间- 空间复杂度 算法执行耗费的内存In/out-place: 不占/占额外内存冒泡排序:- 比较相邻的元素。如果第一个比第二个大,就交换它们两个- 对每一对相邻元素作同样的工作,从开始第一...

2019-08-25 11:35:00 264

原创 C/C++ 面试小知识点

宏定义宏定义是由源程序中的宏定义命令完成的,宏代换是由预处理程序自动完成的。例如 #define PI 3.14 程序中出现宏PI的位置都会替换成3.14优点方便修改,提高效率,缺点是不检测是否合法,可能出现编译通过,运行报错的情况。const关键字是将变量变成常量,不可更改const 修饰指针的时候, 看const 在*的哪一边 ,const在*左边,是修饰指针...

2019-08-25 08:45:16 154

原创 模拟整理

关于编译原理,以下文法中,是自顶向下分析的文法是哪几个?()LR(0) SLR(1) LALR(1) LR(1) LL(1)答案: LL(1) 网络协议的分类数据链路层协议:PPP ARP MAC IEEE802.3网络层协议:IP BGMP传输层协议:TCP UDP应用层协议:HTTP HTTPS FTP Telnet SMTP进程间通...

2019-08-24 08:44:02 254

原创 面试题 8/22

重写与重载的区别?(1)范围区别:重写和被重写的函数在不同的类中,重载和被重载的函数在同一类中。(2)参数区别:重写与被重写的函数参数列表一定相同,重载和被重载的函数参数列表一定不同。(3)virtual的区别:重写的基类必须要有virtual修饰,重载函数和被重载函数可以被virtual修饰,也可以没有。重写:是指派生类中存在重新定义的函数。其函数名,参数列表,返回值类型,所有都...

2019-08-23 20:23:26 395

原创 C++中的智能指针

今天电话面试突然问到这个问题,竟然一点都不了解,查了资料发现还挺有讲究的,整理一下方便使用。智能指针1.为什么会有智能指针?由于 C++ 语言没有自动内存回收机制,程序员每次 new/malloc 出来的内存都要手动 delete/free,比如流程太复杂,最终导致没有 delete/free (比如delete/free在return后边),或者异常导致程序过早退出,没有执行 ...

2019-08-23 14:06:10 119

原创 三次握手与四次挥手

一分钟理解三次握手和四次挥手------------------->传送门原理介绍看下边这个就行,介绍的还可以TCP的三次握手与四次挥手理解及面试题(很全面)面试常见的问题1.为什么需要三次握手,两次不可以吗?或者四次、五次可以吗?我们来分析一种特殊情况,假设客户端请求建立连接,发给服务器SYN包等待服务器确认,服务器收到确认后,如果是两次握手,假设服务器给客户端...

2019-08-20 00:08:05 189

原创 C语言线程池原理介绍

为什么要用线程池?多线程适用于小型的局域网络中,但在大型的局域网或者互联网的规模下,线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线程创建和销毁。线程池是一个抽象的概念,一般小型项目用不到,我也只能算是了解的水平,所以尽我所能的用一个简单的方式描述,懂得原理,真实使用的时候也就方便多了,开始了……线程池里有一些空的线程,这个数量是有...

2019-08-17 23:10:44 433

原创 C语言中的多线程简介

线程 Thread专业术语称之为程序执行流的最小单元。线程是不会执行程序的,可以理解成线程就是一个载体,将 要执行的代码 运送到CPU进行处理。多线程就是多个线程同时并发执行。(注意并发与并行的区别,并行同时执行不同的任务,并行是交替执行不同的任务。)1,为什么要用多线程?1)避免阻塞单个线程中的程序,是按照顺序执行的,排在前面的程序如果发生异常卡住(阻塞),会影响到后面......

2019-08-17 21:21:40 13825 8

原创 catkin_make 时出现道错误

catkin_ws中道CMakelist的问题使用unlink /home/ubuntu/catkin_ws/CMakeLists.txt与系统ROS/中的CMakelist做关联网上找到的参考http://answers.ros.org/question/252980/catkin_make-fail-must-be-invoked-in-the-root-of-works...

2019-07-19 10:54:01 674

原创 catkin_make特定一个包

用catkin_make编译工作空间某一个包:$ catkin_make -DCATKIN_WHITELIST_PACKAGES="..."$ catkin_make -DCATKIN_WHITELIST_PACKAGES="beginner_tutorials"

2019-04-10 09:48:16 5295

原创 ORB_SLAM2安装过程中出现的问题

网上随便找一篇安装教程,基本都一样,我是从这个看的。点击查看在我安装Pangolin 的时候,到cmake的时候准备就绪继续下一步 make -j时出现这样的错误make[2]: *** [src/CMakeFiles/pangolin.dir/video/video.cpp.o] 错误 1make[1]: *** [src/CMakeFiles/pangolin.dir/al...

2019-04-08 09:44:50 1672 1

原创 octomap学习第一天

试图实现Gazebo环境下使用turtlebot建立环境octomap地图这篇博客中的程序0x01启动turtlebot在gazebo下的仿真程序 roslaunch turtlebot_gazebo turtlebot_world.launch 使用gazebo的仿真程序 02 启动 roslaunch turtlebot_teleop keyboard_t...

2019-03-21 21:48:33 474

转载 Ros中的Twist消息类型

指线速度角速度的消息类型,通常是用在运动话题/cmd_vel中,被base controller节点监听。linear.x   y   z     x前  y左   z上方angular.z  角速度  参考看https://www.cnblogs.com/shang-slam/p/6891086.html  https://blog.csdn.net/lizilpl/ar...

2019-02-20 10:17:24 8397

转载 ROS通讯机制

  ROS的核心功能是提供一种软件点对点通信机制,基于这一机制,开发人员可以非常灵活和高效地组织智能机器人的软件实现。ROS的运行架构是一种基于Socket网络连接的松耦合架构。在这个运行架构中包括一系列进程,这些进程可以驻留在多个不同的主机上并且在运行的过程中通过点对点的拓扑结构实现通信。  ROS将每个工作进程看作一个节点,使用节点管理器进行统一管理,并提供一套相应的消息传递机制。在ROS中...

2018-09-30 09:27:06 1782

空空如也

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

TA关注的人

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