自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 Qt项目打包、程序打包、软件打包

找到程序debug中的.exe文件另外新建一个文件夹,将其拷贝进去在Qt自带的打包程序中选择合适的版本比如第一个MinGW 32bit,就是我运行的环境打开后,用cd指令切换到新建的文件目录下cd D:\2021\MyPlayer\输入打包指令windeployqt.exe XXX.exe依赖文件合并这个时候运行软件,发现可以正常运行如果仍然弹出缺乏.dll的提示,不要慌,自己动手去文件夹里找找,因为个别.dll文件Qt确实无能为力打包软件为一个图标这么多的依.

2021-05-20 16:36:12 205

原创 During startup program exited with code 0xc00000135

Qt中运行项目时突然弹出这样的窗口:原因:因为我们在Debug下存放着动态库文件【x.dll】,结果因为环境发生变化,导致项目重新生成,这个时候原来debug中的动态库文件也随之消失。然而我们的项目中还引用这这些文件,因此程序运行会崩溃。重新加入动态库文件,发现问题解决:...

2021-05-15 21:36:23 848

原创 QT开发SDL视频播放器 多线程槽函数不响应的原因之一 附详细分析

主线程中的绑定函数:主线程结构体:主线程中的其他相关函数子线程槽函数按下按键,发现输出框中没有进入槽函数信息1. connect函数的第五参数说明: a. 默认为Qt::AutoConnection。 b. 使用这个值则连接类型会在信号发送时决定。 如果接收者和发送者在同一个线程, 则自动使用Qt::DirectConnection类型。 如果接收者和发送者不在一个线程, 则自动使用Qt::QueuedConnection类型。 c. Qt::QueuedConnec

2021-04-26 08:28:54 721

原创 基于FFmpeg和SDL的视频播放器——将FFmpeg和SDL添加到QT项目中

新建一个新项目除了名字需要修改,其他都默认2. 将 FFmpeg 和 SDL2 文件复制到项目文件夹中到这里需要注意一下,复制完文件后,并不意味着 FFmpeg 和 SDL2 可以直接使用,还需要在项目对应的Debug包中添加 .ddl 文件SDL2 只有一个需要复制3. 在项目的 .pro 中添加对应路径,将源代码加入到我们的项目中进行直接引用这里需要注意,一定要【重新构建】,然后【qmake】4. 修改 main函数,打印 FFmpeg 版本号#include "ma.

2021-04-17 16:19:29 218

原创 一文读懂 .bss段 的作用

网上诸多博主关于.bss段的解释,看了一圈下来,神乎其神,完全脱离实际,只会用“古文”来喝退小白。然而,问题并未解决···因此,想综合自己的理解,用白话文将 .bss段 的作用给大家讲明白文章目录1. 位置2. 作用1)概念2)好处3. 实现1)解释2)举例1. 位置在程序执行前,这块区域的大小就已经固定。值得注意的是,这块区域可以读写。2. 作用1)概念BSS段通常是指用来存放程序中未初始化的或者初始化为0的全局变量和静态变量也就是说,只要初始值为0的类型,都会先放在这里,等到再次赋值

2021-03-19 16:53:16 7131 3

原创 内存泄漏

memory leak:是指由于疏忽或错误造成程序未能释放掉不再使用内存的情况。内存泄漏不是指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。分类:1. Heap leak:malloc, realloc, new等分配后忘记调用 free和delete删掉2. resource leak: 程序使用系统分配的资源后没有使用相应的函数释放掉(比如 bitmap, handle, SOCKET 等),导致系统资源的浪费,严重可导致系统效能降低

2021-01-26 16:24:09 139

原创 一文读懂 delete和delete[ ]

文章目录作用内存管理中:第一种情况第二种情况作用delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存内存管理中:1. 不论申请一块多大的内存,头尾都会有对应的大小标注。2. 如果是普通变量类型,直接释放掉(还给操作系统)头尾标记的内存块大小即可。3. 但是如果是类的话,还得看类中的数据类型 a. 如果只有普通类型,可能没有影响 b. 有指针等,像套接字,文件描述符,线程等 i. 最明显的就是端口号不被释放,一直被占用,无法

2021-01-26 16:20:56 1102

原创 一文读懂踩内存

1. 概念:访问了不合法的地址 。通俗一点就是访问了不属于自己的地址。如果这块地址分配给了另一个变量使用,就会破坏别人的数据。从而导致程序运行异常,挂死,输出图像破图等。2. 踩内存的可能的情形 1)内存访问越界 a)数组访问越界; b)字符串操作越界; 2)非法指针 a)使用了空指针; b)使用了释放掉的指针; c)指针类型转换错误; 3)栈溢出; 4)多线程读写的数据没有加锁保护 5)多线程使用了线程不安全的函数3. 如何排查 1)删减模块代码,缩小排查范围;

2021-01-26 16:13:38 1329

原创 #pragma once和#ifdef限定编译的区别

#ifndef依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致头文件明明存在,编译器却硬说找不到声明的状况#pragma once则由编译器提供保证:同一个文件不会被包含多次。注意这里所说的“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。带来的好处是,你不必再费劲想个宏名了,当然也就不会出现宏名碰撞引发的奇怪问题。对应的缺点就是如果某个头文件有多份拷贝,本方

2021-01-26 16:11:17 56

原创 字符串表

字符串的长度往往是不固定的,所以用固定的结构来表示它比较困难。一种很常见的做法是把字符串集中起来存放到一个表,然后使用字符串在表中的偏移来引用字符串偏移对应的字符串如下:这样,引用字符串时,只需要给出一个数字下标即可,不用考虑字符串长度的问题。...

2021-01-26 16:09:19 692

原创 一文搞懂单例模式

引言:对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意味着在某一瞬间系统有多个状态,与实际不符,也会给用户带来误解,不知道哪一个才是真实的状态。因此有时确保系统中某个

2021-01-26 16:04:27 111

原创 define 和const的区别

define 和const的区别:(1)就起作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。(2)就起作用的方式而言: #define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避免一些低级的错误。(3)就存储方式而言:#define只是进行展开,有多少地方使用,就替换多少次,它定义的宏常量在内存中有若干个备份;const定义的只读变量在程序运行过程中只有一份备份。(4)从代码调试的方便程度而言: con

2021-01-26 15:52:22 210

原创 IP地址的分类

文章目录1. A类地址2. B类地址3. C类地址4. D类地址5. E类地址1. A类地址⑴ A类地址第1字节为网络地址,其它3个字节为主机地址。⑵ A类地址范围:1.0.0.0—127.255.255.255(《TCP/IP·卷一》中从0.0.0.0算起)⑶ A类地址中的私有地址和保留地址: ① 10.0.0.0-10.255.255.255是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。 ② 127.0.0.0-127.255.255.255是保留地址,用做

2021-01-26 15:50:23 450

原创 思维导图 XMind_Zen安装指南

文章目录成果下载地址安装成功成果开启了新世界:——去水印——主题超链接——添加语音备注——插入本地图片——仅显示该分支——插入主题链接——对齐自由主题——导出 Word 和 Excel…下载地址网盘下载链接提取码:7eo8安装解压后打开 XMind 文件双击安装这个过程可能会很漫长,多装几次,或者自己想想办法安装完成后找到同级目录下的打开 resource 文件,替换 app.asar 文件删掉原来的,拷贝一份新的在这里成功...

2021-01-24 21:28:21 223 1

原创 STL容器中的有序无序

2021-01-21 12:00:12 1056

原创 static int __ref kernel_init(void *unused)语法分析

震惊!!!1. 缘起“这是我第一次见到这种写法,int 后面还可以接一个宏定义(来自皇兄的灵魂发问)”再看看这个 __ref:再康康:貌似是一个 bool 类型的返回值2. 宏定义作用是个宏定义,还可以传参数!!!看了下官方文档对 __ref 的解释:翻译成中文:这个 modpost 应该是个内核模块3. 真相找了好长时间,也没有得出个所以然来,就去吃饭了。不知怎的突然灵光一闪:(禁止套娃)既然是防止警告的,不就是异常处理吗?既然是异常处理,不就是 try、cat

2021-01-21 11:37:34 535 6

原创 Windows 上可以安装 Apple Music 吗?

Apple Music 在 Windows 系统上的使用apple music作为一名 ipad 的忠实用户,就购买了配套的 ipods pro, 也就因此购买了与之配对的 Apple Music.(无广告且前三个月免费,音源非常舒服)过去(苹果发布的网页版)有没有和我一样的强迫症???现在与 Windows 的交互——通过 Edge Brower1. 找到官网在线 Apple Music网站https://music.apple.com/cn/listen-now2. 点击 Edge

2021-01-05 16:54:37 62385 10

原创 有一个已经排好序的数组,输入一个数字,要求按照原排序插入到数组当中去。

分析:插入前:二分查找法确定位置。插入时:因为是静态数组(未使用容器,无法动态扩容),因此插入时必须将插入点之后的元素都往后移动一个位置,最后将该元素赋值到该位置。按顺序输出即可。C#代码如下://Binary Search and insert the numberusing System;class Program{ public static int BinarySearch(int[] arr, int low, int high, int target) {

2020-11-13 19:08:27 949

原创 创建一个书籍类,该类成员变量有书名、出版社、刊号;为书籍类设计一个显示信息的方法。输入几本书的信息,然后在屏幕上输出书籍的相关信息。

不说了,直接上图//Library managementusing System;using System.Collections.Generic;class Program{ public class Book { //public Book() { } public Book(string name, string pub, string number) { bookName = name;

2020-10-30 22:10:20 1741 2

原创 音视频入门教程

除此人不可荐逝去的雷神——雷霄骅学习内容请第一个就是

2020-09-04 19:29:54 211

原创 QT下载项目遇到的问题

2020-09-01 11:33:15 833 6

原创 error: C3867: “XXX::clicked”: 函数调用缺少参数列表;请使用“&XXX::clicked”创建指向成员的指针

QT5.9.7避坑指南1connect(bt, QPushButton::clicked, bt, MyButton::randomMove);//QT5.7.0和QT5.14.1版本写法我们在QT5.9.7可能会这样写,那么问题就会来了于是乎我们按照要求对槽函数取了 &查阅QT助手后发现,connect声明并没有变:QT5.14.1:这个时候我们发现,一模一样的东西,为啥就不对了,难道这是QT5.9.7的bug???不过,按照C++语法,QT5.9.7这样写没毛病。..

2020-08-08 12:20:26 579

原创 Windows下64位QT V5.9.7的安装

2020-08-07 12:59:48 925

原创 仿照String类,实现简易版MyString类

设计的效果:自用还可以和vector一起用调用方法MySTL::LiteString s;cout << "s\n" << "IsEmpty() " << s.empty() << endl << endl;MySTL::LiteString s2("hello world\0");cout << "s2\n" << s2 << endl;cout << "s2 opera

2020-08-05 16:21:01 644

原创 库函数中的排序函数std::sort()

2020-08-01 10:24:42 1796

原创 五种迭代器型别——iterator associated types

2020-08-01 10:23:03 348

原创 容器是否支持迭代器

2020-08-01 10:21:19 897 2

原创 迭代器失效问题总结

2020-08-01 10:15:19 163

原创 gcc 生成可执行文件的四个步骤

$gcc hello.c$./a.outHello World程序源代码 -> 最终可执行文件分为4个步骤:.c和.cpp区别:分别会用C/C++编译器去编译编译过程中,项目中所有源文件(c或cpp文件)都会参与编译,编译后 链接成 同一个 目标文件,最后变成一个exe可执行文件。头文件就是一个文本文件,存在意义就是被别的源文件 include用每一个源文件严格对应一个obj文件,一一对应链接:合并所有obj文件为一个文件...

2020-07-27 15:13:41 3734

原创 象棋实战:基于QT5.7

第一天:总体架构 1. 熟悉QT基础函数 2. 构建象棋整体框架:棋子的表示,走法,以及要实现的功能:人人,人机,网络等 3. 使用QT绘制棋盘 a. 绘画棋盘 b. 绘画棋子 c. 棋盘行列值和屏幕之间的像素值之间进行切换 d. 屏幕重绘第二天:规则 1. 初始化棋子 2. 移动 3. 象棋走棋规则 a. 将 b. 士 c. 相 d. 兵 e. 马 f. 车 g. 炮 4. 轮流规则第三天:AI 1. 预判一步象棋 AI 2. 最大值

2020-07-25 00:27:38 209

原创 TCP保活机制(Keep Alive)

TCP保活机制引言如果TCP连接的双方都不向对方发送数据,那么TCP连接的两端就不会有任何的数据交换。比如建立连接后,客户端离开几个小时、几天,而连接仍然会保持。C/S间没有任何数据交换,但仍需要通过连接保持一个最小的数据流概念保活机制是一种在不影响数据流内容的情况下探测对方的方式。是由一个保活计时器实现的。当计时器被激发,连接一端就发送一个保活探测(简称报文)报文,另一端接收报文的同时会发送一个ACK作为响应。开启保活机制的一方可发现另一方的状态:导致结果:Windows下

2020-07-10 23:50:07 965

原创 四次挥手详解

四次挥手为什么是四次?不可以像三次握手一样合并 SYN 和 ACK 吗?为什么要四次挥手->三次握手中的SYN和ACK完全可以合并->那为什么四次挥手不能合并->RFC规定:TCP中ACK可以和数据合并,所以合并以后不能再和FIN合并了TIME_WAIT状态概念有此状态的原因同时关闭(即同时发送FIN)怎么办?双方发送FIN后,均进入FIN_WAIT_1状态然后双方都接收到对方的FIN后,再给对方回复ACK,此时进入CLOSING状态双方互相接收到对方发来的ACK后

2020-07-02 12:27:13 590

原创 native pointer

native pointer原生指针就是普通指针,与它相对的是使用起来行为上x像指针,但却不是指针。说“原生”是指“最简朴最基本的那一种”。因为现在很多东西都抽象化理论化了,所以“以前的那种最简朴最基本的指针”只是一个抽象概念(比如iterator)的表现形式之一。泛型指针泛型指针有多种含义。指void*指针,可以指向任意数据类型,因此具有“泛型”含义。指具有指针特性的泛型数据结构,包含泛型的迭代器、智能指针等。广义的迭代器是一种不透明指针,能够实现遍历访问操作。通常所说的迭代器是指狭义的

2020-07-01 20:44:33 402

原创 三次握手详解

文章目录三次握手为什么要三次握手?而不是两次,四次?1. 从资源浪费的角度2.从初始序列号的角度3.从信道安全的角度三次握手赤壁之战中,孙刘联军包围了曹操,为歼灭曹贼,孙刘联军必须同时发起进攻形成包围圈。那么问题来了,如果诸葛亮准备于次日卯时借东风,怎么通知孙权进攻时间呢?打电话?不可能,没有这个玩意儿。派传令兵。可是必须进过曹军阵地,这样安全吗?刘备的传令兵可能出现的情况:1.顺利抵达刘备派传令兵(去通知孙权)->孙权派传令兵(给刘备说我知道了)->刘备派传令兵(

2020-07-01 15:48:22 290

原创 VScode配置C++完美避坑指南

引言:相比诸多博主神乎其神的博文,让我花费了大半天的功夫,才整理完,而且连最基本的“helloworld”都打印不了,我彻底自闭了次日,突然想起了正版这个事情,于是默默的打开了这个网站,解决了所以问题https://code.visualstudio.com/docs/cpp/config-msvc奉劝诸位一句,不管是什么,一定要吃原来的,最本质的,经过别人手的东西,毕竟会遗失些许精华。...

2020-06-24 12:52:02 929 1

原创 罗技craft键盘使用入门

引言:本文旨在为大家(程序员)快速入门罗技craft键盘,因为网上关于craft的测评缺乏深度,根本触及不到我的灵魂深处1.开箱咋样,是不是帅的雅痞?2.入门刚回来的几个小时,由满怀喜悦,到笑容逐渐凝固,再到内心毫无波澜,到最后奔溃后狂按键盘想退货。说起来,均是处于自己的无知。【因为此货用了京东白条六期】2.1软件下载记住了,安装完之后打开软件,千万千万别更新,别更新,别更新。——点击跳过就好了。因为有master2S,所以用的之前的安装包。官网下载是很慢的,差不多1个小时?推荐

2020-06-20 11:54:32 9302 2

原创 SYN泛洪

SYN FloodingTCP SYN泛洪:1. 发生于第四层,利用三次握手。2. 攻击者发SYN(是TCP三次握手中的第一个数据包),而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个连接就处于挂起状态(半连接)。服务器收不到再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。3. 大量的这种TCP连接会极大消耗服务器CPU和内存,最后导致死机防范:1. 降低SYN timeout时间。更改主机系统设置,使得主机尽快释放半连接的占用;2. 采用SYN cookie

2020-05-23 12:02:09 579

原创 C++程序员精选面试题

文章目录三次握手迭代器失效size_t 和 ptrdiff_tnative pointer,原生指针顶层const和底层const数组名不能自加操作,指针可以自加操作memmovestrcpy ————仿照memmove()operator++(int)左值和右值大端和小端三次握手赤壁之战中,孙刘联军包围了曹操,为歼灭曹贼,孙刘联军必须同时发起进攻形成包围圈。那么问题来了,如果诸葛亮准备于次日卯时借东风,怎么通知孙权进攻时间呢?打电话?不可能,没有这个玩意儿。派传令兵。可是必须进过曹

2020-05-12 15:37:47 258

原创 链式空闲内存管理

空闲内存管理1.使用位图如下图 b) :2.使用链表原理如上图 c)为(创建或从磁盘换入的)进程分配内存的算法:思考在链式存储时,如果有一个大小为2的进程加入,原来的链式图有什么变化?...

2020-05-11 18:59:40 241

原创 printf经验谈

printf输出时,一般会将字符送至缓冲区,直到碰到1) ‘\n’才会结束2) 超过缓冲区大小[1024]时这两种情况。例如:int main(){printf("------------");//此时运行程序,不会正常打印while(1);return 0;}int main(){int i=0;while(i<1024){printf("-");//当i&l...

2020-05-06 23:07:11 121

秦时明月高清壁纸:人物+背景

秦迷必备高清壁纸,外附Q头像,可做各类网站的头像。

2021-01-10

PDF转文字/Word

网站论文、道客巴巴、百度文库等PDF转文字,图片转论文

2021-01-10

空空如也

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

TA关注的人

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