自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程笔记

因为喜欢,所以热爱;

原创 beyond compare git冲突解决配置

初始化仓库后,在系统目录就会生成.gitconfig文件,找到这个文件 "C:\Users\Alpha\.gitconfig" 添加如下内容 [diff] tool = bc4 [difftool "bc4&...

2020-07-12 16:16:22 22 0

原创 Qt5.9 5.12等高版本的安装问题

Qt5.9之后的版本,安装时需要登陆,不然无法next,因此在安装时建议先断网,next之后可以把网络再连上,不管是windows还是mac都有这种现象。

2020-07-11 18:45:25 25 0

原创 C++ STL map使用详细介绍(插入,遍历、查找,删除,仿函数自定义map排序)
原力计划

简单说说C++ STL map的特点,map是有序键值对,默认是按key值递增存储,可以理解为函数有递增趋势的函数f(x, y),既然是函数,那么一个x只能对应一个y, 而一个y可以有多个x对应,也就是说,在map中,key不能重复,value可以重复。 至于map的内部实现红黑树,本篇就...

2020-07-11 01:33:31 53 0

原创 git fatal: The current branch master has no upstream branch. There is no tracking information for。。。

当你在本地创建了仓库,远程也创建了仓库,或者之前和远程做了连接,但是你重装系统了,再次从远程拉取或者push代码时,就会出现如下错误: There is no tracking information for the current branch 或者 fatal: The ...

2020-07-10 23:25:47 41 0

原创 C++ boost ref 引用类型介绍

boost库提供了一种“强引用”类型,标准C++的引用类型,一旦指向类型,就不能改变它的值,boost的ref类型可以进行修改值,++等操作。 boost引用库是在ref.cpp文件的reference_wrapper内,使用前要包含图文件 ...

2020-07-06 23:28:04 42 0

原创 C++ boost库开发环境配置

最近有小伙伴看了我的教程,被C++ boost开发环境的配置难住了,我在写博客时觉得C++程序员应该对SDK的配置很熟悉,就没着重介绍,本篇详细介绍VS2017 C++ boost开发环境的配置,其它库的配置也类似。 像boost, ffmpeg, opencv, SDL, halcon...

2020-07-05 22:30:16 57 0

原创 C++ boost库智能指针(四):intrusive_ptr

intrusive_ptr这个智能指针不怎么好用,虽然它和shared_ptr也是基于引用计数的,但需要自己来实现引用计数的增加与减少。需要在我们管理的指针对象中添加一个计数的成员,例如下面的类Test. 头文件:#include <boost/intrusive_ptr.hpp&g...

2020-06-23 00:08:37 77 0

原创 C++ boost库智能指针(三):weak_ptr

weak_ptr是shared_ptr得到协助者,可以观察shared_ptr是否过期,weak_ptr不改变引用计数,也不能使用 *,->操作符,是一个很弱的智能指针。例如下面的代码: #include <iostream> #include <boost/make_...

2020-06-22 23:19:07 60 0

原创 C++ boost库智能指针(二):shared_ptr和shared_array

shared_ptr是boost最重要的智能指针,最像智能指针的"智能指针",由于它的优越表现,被加入了C++11标准。 shared_ptr与scoped_ptr —样包装了 new操作符在堆上分配的动态对象,但它实现的是引用计数型的智能指针,可以被自由地拷贝和赋值,...

2020-06-22 23:18:36 79 0

原创 C++ boost库智能指针(一):scoped_ptr 与 scoped_array

使用scoped_ptr需要包含的头文件 #include <boost/scoped_ptr.hpp> 相比于auto_ptr, boost的scoped_ptr对指针的使用权进行转移,这是因为在scoped_ptr内部对拷贝,赋值做了私有化: template<...

2020-06-22 23:18:19 71 0

原创 C++ 标准库智能指针auto_ptr源码分析

智能指针是C++标准中一个很重要的内容,它帮C++程序员解决了部分内存开辟与释放的问题,使C++程序员可以和java, C#一样不为内存泄露而担心。使用智能指针需要包含头文件#include <memory> C++标准的智能指针主要有4个,auto_ptr, unique_p...

2020-06-22 23:17:56 103 0

原创 Qt响应ctrl 鼠标滚轮字母等组合按键

一般的软件会有很多组合快捷键,例如QQ截图ctrl + alt + A,微信截图 alt A,看PDF时ctrl +鼠标滚轮进行缩放等。Qt对这些快捷键都有了实现,下面分别对这些功能做介绍并提供代码实现。 1鼠标按键 重写mousePressEvent方法就可以实现对鼠标按键的控制,如下...

2020-06-17 00:27:12 119 0

原创 C++数据结构:普通队列与循环队列

什么是队列? 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构。 队列分类 普通队列与循环队列,普通队列可以看做是一列数据,环形...

2020-06-14 22:32:24 80 0

原创 MFC CArchive类读写文件的应用

一 写文件 CFile和CArchive进行绑定,CArchive把数据写到文件中,代码如下: CFile file; BOOL isOk = file.Open(L"1.txt", CFile::modeCreate | CFile::modeWr...

2020-06-14 15:55:34 70 0

原创 ProcessExplorer查找C++ exe程序运行所需要的的dll

当我们把自己打包的exe程序放到别人电脑时可能出现缺少dll的情况,此时可以用ProcessExplorer工具找出对应的dll, 把exe先运行起来,将ProcessExplorer工具栏的靶子拖动到运行的exe窗口上,此时该exe会被ProcessExplorer监控到 如下图 ...

2020-06-14 15:54:09 78 0

原创 C++构造函数语义学之默认构造函数

在学C++时,通常有一种概念,在创建类对象时,如果没有构造函数,那么会调用默认的构造函数,并且把相关成员赋值为0,这句话正确吗,看看下面这个例子: #include <iostream> using namespace std; class Foo { public: //F...

2020-06-06 22:07:26 59 0

原创 STL仿函数与函数对象浅析

例如,一个很简单问题,求两个数中的较大数,用C++代码很好写,如下: int Max(const int num1, const int num2) { return num1 >= num2 ? num1 : num2; } 对于这种问题,如果你想把代码写的让人捉摸不透,怎...

2020-05-17 22:49:41 74 0

原创 STL multiset使用说明与代码演示

STL multiset特点 (1)数据有序,可重复 (2)删除元素时,相同的所有元素都会被删掉 使用时需要包含头文件<set>. 代码: #include <iostream> #include <set> using nam...

2020-05-17 22:14:03 68 0

原创 C++增强for循环

for循环是常见的代码语句,常规的for循环如下 #include <iostream> using namespace std; int main() { int array[] = { 1,1,2,3,5,8 }; //常规for循环 for (int i = 0;...

2020-05-17 19:07:58 228 0

原创 VLD检查C++ VS2017内存泄漏具体到某一行代码

VLD工具可以用来检查VS C++程序的内存泄露。 VLD官网:https://kinddragon.github.io/vld/ 官网不方便下载的,可以用我的链接:https://pan.baidu.com/s/1-SiP9bYCfk67aUmKIOUwpQ 提取码:dvaw 下载安...

2020-05-15 22:41:04 182 0

原创 C++线程池同步方法

在多个线程同时对某个变量操作时,会发生内存抢占,以至于程序出现不可预知的结果,为了说明这种现象,请看下面的代码: #include <iostream> #include <Windows.h> using namespace std; LONG g_count =...

2020-05-15 15:16:51 101 0

原创 C++ windows线程池简介

windows操作系统由C,C++,C#等语言开发,为程序员C++/C#程序员提供了很多底层API, 线程池是windows提供的一大便利编程技术。当然,也可以自己写个线程池。 windows API自带的线程池,主要四种用法,如下图所示: 这种功能都需要一系列的API来完成,以及在项...

2020-05-15 00:26:31 85 0

原创 C++ sqlite基本操作代码示例

在sqlitebrowser中创建一个数据库,添加一些数据。如下: 用vs2017创建C++控制台项目,配置好sqlite sdk,.h, .lib, .dll, 即可进项编程了。C++代码: /* sqlite数据库基本使用 */ #include <iostream&g...

2020-05-11 21:24:27 100 0

原创 VS2017编译sqlite3生成lib,dll

sqlite官网:https://www.sqlite.org/index.html sqlite3源码及dll下载链接:https://www.sqlite.org/download.html 官网只提供了dll, 没有lib, 需要我们自己编译。vs编译sqlite的方法有两种,一种是...

2020-05-11 19:43:26 122 0

原创 C++ tinyxml2解析xml文件【详细代码】
原力计划

tinyxml2官网:http://www.grinninglizard.com/tinyxml2/index.html github下载链接:https://github.com/leethomason/tinyxml2 源码文件就两个, .h .cpp, 可以直接放到项目中使用,也可以...

2020-05-10 23:01:10 81 0

原创 完美解决win10安装svn出现2503,2502错误

如果win10是重装的,或者是没有管理员权限,安装SVN时就会出现2503,2502的错误,导致无法安装svn, 具体解决办法如下: 右键win10左下角开始,打开红色框的选项。 输入msiexec /package"你的msi文件的路径",然后就会弹出安...

2020-05-07 23:10:53 94 0

原创 QML圆形延时按钮

QML提供了延时按钮DelayButton,我们可以对其自定义,如下图: 代码 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.5 Window { visible: tru...

2020-05-04 00:41:21 141 0

原创 QML自定义CheckBox

QML默认的CheckBox是打√,可以自定义实现如下效果 代码 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.5 Window { visible: true widt...

2020-05-04 00:28:44 130 0

原创 QML复选框CheckBox

QML的复选框是CheckBox,使用代码如下: import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.5 import QtQuick.Layouts 1.12 Window { visib...

2020-05-04 00:19:07 144 0

原创 QML双向滑动控件RangeSlider

例如下面的控件可以双向滑动,该控件在QML中叫RangeSlider demo代码如下: import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.5 Window { visible...

2020-05-04 00:13:57 143 0

原创 QML单选按钮RadioButton的用法及自定义

一RadioButton的简单用法 QML的单选按钮是RadioButton,例如下面的界面 实现代码如下: RadioButton { id:rb1 checked: true text: qsTr("First") } RadioButto...

2020-05-03 23:52:16 266 0

原创 h264格式说明与分析

H264是一种视频编码标准,用ffmpeg工具可以将MP4视频转码为h264,例如下面的命令: ffmpeg -i 1.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264 h264的功能分为两层,视频编码层(VCL)和网络提取层(N...

2020-05-03 22:49:47 147 0

原创 VLC Qt视频播放器开发指南

VLC的音视频编解码是对ffmpeg的封装,用FFmpeg可以开发视频播放器,推拉流,同样用VLC也可以,某些时候可能比ffmpeg还要简单点。本篇博客介绍VLC Qt视频播放器开发的预备工作。 开发环境:VS2017, Qt5.12_x64, win10 首先需要获取VLC的...

2020-05-02 00:18:49 339 0

原创 vlc sdk下载

http://download.videolan.org/pub/videolan/vlc/

2020-05-01 21:23:00 142 0

原创 C# FFmpeg开发说明

FFmpeg是用C开发的,如果C#要用,可以调用FFmpeg的dll, 但是这样比较复杂,FFmpeg的sdk有很多函数,C#调用C还涉及到数据类型转换,难度很大,不过FFmpeg有C#版本FFmpeg.AutoGen,在项目中可以直接导入使用。 FFmpeg.AutoGen 项目源码h...

2020-05-01 17:30:57 304 0

原创 C#基础(四):foreach、var

C#有增强for循环“foreach”, 要配合var关键字,var作用是推断类型,声明的时候必须赋值,类似于C++的auto关键字。 示例代码如下: int[] array = { 12, 23, 34, 45 }; //普通for for...

2020-05-01 16:17:15 155 0

原创 C#基础(三):函数(方法)的定义、out、ref、params

C#是纯面向对象的,和C++有点不同,比如C#的方法声明格式如下: [public] static 返回值类型 方法名字(参数列表) { 方法体 } public 访问修饰符,可以省略 比C++多了个修饰符,而且都得用static修饰, 其它的和C++基本一致。 C#有类似于C++的...

2020-05-01 16:16:42 116 0

原创 C#基础(二):enum与struct

枚举类型 /* C#枚举体的应用 */ using System; namespace ConsoleApp1 { class Program { enum State { OnLine, ...

2020-05-01 16:16:14 124 0

原创 C#基础(一):数据类型

1 、第一个C#程序 using System; namespace base_01 { class Program { #region 代码折叠块 static void Main(string[] args) { ...

2020-05-01 16:15:08 96 0

原创 QML控件Label、TextField用法介绍

Label用法代码 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.5 Window { visible: true width: 640 height: 480 ...

2020-04-29 20:04:30 157 0

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