自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

prerfect_cat的博客

我是新手,请大佬们指教!

  • 博客(99)
  • 资源 (4)
  • 收藏
  • 关注

原创 windows HOOK学习(一)

windows hook

2023-11-12 15:59:14 340

原创 windows使用FindWindow函数查找窗口句柄

Findwindow查找窗口句斌

2023-11-01 23:05:45 2723

原创 音频相关属性

声道,采样率,采样格式基础概念

2022-07-29 00:22:13 1191 1

原创 堆排序--topk问题

求TopK问题—堆排序问题:求一个N个元素的数组中前K大的数,或者前K小的数、解决思路:使用堆排序;求前K大的数----建小堆:首先从数组的前K个数中构建一个小堆,堆顶的元素就是K个数中的最小值,然后将后面N-K个元素依次和堆顶元素比较,如果大于堆顶的值就替换堆顶元素。这样遍历后就找到了前K个值。求前K小的数—建大堆:从数组前K个中建大堆,堆顶的元素是目前的最大值,然后用其余N-K个元素和堆顶的元素比较,比堆顶元素小的替换,然后调整堆。void adjustDown(int* a, int par

2022-01-12 14:54:08 218

原创 qss设置颜色线性渐变

background-color:qlineargradient(x1:0, y1:1, x2:0, y2:0,stop:0 rgba(255, 250, 229, 255),stop:1 rgba(255, 251, 244, 255));

2021-12-29 16:20:27 630

原创 使用MediaInfo.dll获取是媒体文件信息

MediaInfo是一款专门用来分析音视频文件编码和内容信息的开源软件,提供的形式有多种:桌面应用程序,命令行下的使用,动态库。动态库的下载方式:官网地址MediaInfo下载完成之后解压后有一下文件,主要用的东西在MediaInfoLib中,剩下两个文件是辅助库。找到MediaInfo.dll 和MediaInfoDLL.h文件(可能文件下面没有dll文件,这是可以自己打开里面已有的vs工程,自己主动编译一遍就有了)。下面介绍一下简单的使用:#include <iostream&

2021-04-21 02:49:13 1796 1

原创 Qt实现控件的渐隐渐现动效

主要用到两个类:QGraphicsOpacityEffect和QPropertyAnimationQGraphicsOpacityEffect *opacity = new QGraphicsOpacityEffect(this);//opacity->setOpacity(0.5); //设置透明度0.5,透明范围:[0,1]ui->btn->setGraphicsOpacityEffect(opacity); //应用到需要透明变化的控件;//使用属性动画类让控件在透明度范围

2020-12-08 00:49:25 1207

原创 QLabel显示图片 ,并实现缩放

QImage image("c:/test.jpg");QPixmap px = QPixmap::fromImage(image);//图片缩放:w, h为宽高px = px.scaled(w, h, Qt::keepAspectRatio, Qt::SmoothTransformation);主要注意下scaled的第三个和第四个参数,Qt::KeepAspectRation是表示图片在缩放时候保持本身宽高比例,Qt::SmoothTransformtion是平滑算法,保持图片在缩放时候模糊。

2020-10-27 16:15:56 4685

原创 OpenGL中的一些专业术语

OpenGL渲染管线渲染管线指的是一系列的数据处理过程,将数据转换到最终渲染的图像。着色器着色器指的是数据处理程序。图形渲染管线的整个处理流程可有被划分为几个阶段,上一个阶段的输出数据作为下一个阶段的输入数据,是一个串行的,面向过程的执行过程。每一个阶段分别在GPU运行各自的数据处理程序,这个程序就是着色器。(图为顶点处理的流程图)顶点在OpenGL中,所有的顶点都是三维空间内的顶点。(只要把深度定义为0,就可以保证他们在一个平面上。比如:(-0.5,0.5,0,0),(0.5,-0.5,0.0

2020-10-10 21:27:15 243

原创 他们说的OpenGL是什么?

什么是OpenGL?一般OpenGLad它被认为是一个API(应用程序编程接口),包含了一系列能够操作图形、图像的函数。然而,OpenGL本身并不是一个API,仅仅是一种规范。网上的讨论有着以上两种观点,我也很蒙了,上了某乎搜一下,有这样的讨论:点击打开;相信伙伴们看后也会有些启发。所以:OpenGL可认为就是一种规范,为我们定义(或者说规定了)我们去操作图形、图像的一些列函数的API,本身并不是API。GPU的硬件开发生需要提供满足OpenGL贵方的实现,这些实现被称为“驱动”,负责将Ope.

2020-09-04 00:53:36 741

原创 Qt 窗口指针调用close()方法之后,,,,,,

Qt 窗口指针调用close()方法之后,还能使用指针吗??QWidget *w = new QWidget(this);w->close();那么:w->isVisible()???是什么结果呢?true or false??? 还是crash??先贴一段英语壮壮B格~~ 哈哈Closes this widget. Returns true if the widget was closed; otherwise returns false.First it sends th

2020-05-18 19:48:03 1017

转载 token是什么?

文章来源:https://blog.51cto.com/wyong/1553352对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。一、我们先解释一下他的含义:Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户...

2019-11-19 21:44:34 398

原创 nativeEvent介绍和使用

nativeEvent(const QByteArray &eventType, void *message, long *result){chASSERT(message != NULL);MSG* winMsg = static_cast<MSG *>(message);HWND hWnd = winMsg->hwnd;switch (winMsg->...

2019-11-05 15:00:40 11360 2

原创 tcp的一张图

2019-10-25 11:34:58 123

原创 用VS对Qt项目进行单元测试的简单总结

整个测试过程中的一些小问题记录

2019-10-13 20:01:23 792

原创 qRegisterMetaType的介绍

如果要在Qt信号槽中使用自定义类型,需要注意使用qRegisterMetaType对自定义类型进行注册,当然在不跨线程时使用自定义类型signal/slot来传递,可能不会出现什么问题;一旦涉及跨线程就很容易出错,回想下信号槽的作用就是用来对象与对象之间通信的,难免会跨线程,建议在使用自定义类型利用信号槽通信时,最好先通过qRegisterMetaType()将自定义类型进行注册,以免出错。如果...

2019-09-26 18:16:33 1644

转载 connect的第五个参数

Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程。对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题。解决方法一:在处理耗时操作中频繁调用QApplication::processEvents()。这个函数告诉Qt去处理那些还没有被处理的各类事件,然后再把控制权返还给调用者。QElapsedTimer et; et.sta...

2019-09-19 11:23:32 1101

原创 关于为什么出现粘包问题及如何解决!

1 什么是粘包现象TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。  2 为什么出现粘包现象(1)发送方原因我们知道,TCP默认会使用Nagle算法。而Nagle算法主要做两件事:1)只有上一个分组得到确认,才会发送下一个分组;2)收集多个小分组,在一个确认到来时一起发送。所以,正是Nagle算法造成了发送方有可能造成粘包...

2019-08-23 13:02:44 3357

原创 lambda表达式,bind函数

什么是lambda表达式?:一块代码单元,可以理解为未命名的内联函数。形式:【捕获列表】(参数列表)->返回类型 { 表达式体 }例子:[ ](const string& s1, const string& s2){ return s1.size() < s2.size()};可以省略参数列表和返回类型,但是必须包括捕获列表和表达式体auto f = [ ]...

2019-08-14 19:18:57 285

转载 VS解决“This function or variable may be unsafe” 错误

在用VS2017打开项目时,发现报错:error C4996: ‘strncpy’: This function or variable may be unsafe.原因是由于VS2017要求更加严格,本处的报错是由于使用了strncpy函数,该函数将被微软弃用,微软建议用strncpy_s来代替。解决方法:点击:项目->XXXX属性->C/C+±>预处理器->预...

2019-08-12 14:42:54 2640

原创 使用IShellLink和IPersistFile在windows下创建文件快捷方式

转载:http://www.cnblogs.com/lzjsky/archive/2011/01/17/1937525.html二个操作:新建和解析主要用到的是COM组件。IShellLink和IPersistFile需要添加的头函数#include <shobjidl.h>IPersistFile主要用到两个成员函数:1、Save。保存内容到文件中去2、Load。读取...

2019-08-12 12:51:35 893

原创 基于POSIX实现一个文件下载线程池

先理清思路:线程池需要维护一个任务队列,允许配置活动的线程数,线程池从任务队列中取任务,根据拿到的任务执行响应处理,所以每个任务是这样一个结构体:typedef void* (*FUNC_POINT)(void* arg); //定义一个函数指针typedef struct Task //任务结构体,{ //void* (*Handler)(void* arg); //处理任务...

2019-07-25 17:32:34 155

原创 QT使用多线程的两种方法

两种方法:继承QThread类,重写run方法(QT4.8之前使用)自定义一个继承QObject的类转移到Thread中。(和线程的交互通过信号和槽(实际上其实是通过事件)联系,QT4.8之后,官方建议这种方法)为什么使用线程:?举个例子:如果我们在写GUI程序的时候,如果某处的数据,计算比较复杂,当前主线程就会卡在这里,在具体表现就是界面会卡住。所以在这个时候多线程就起到了关键的作用...

2019-01-30 15:53:58 1481 2

原创 Qt学习之Tcp通信

QT中TCP协议让服务器和客户端之间通信的具体流程:-----服务器流程:创建QTcpServer对象tcpServer;启动监听,调用listen函数;listen(QHostAddress::Any, 端口号);当有客户端连接时会发送newConnection信号,出发槽函数接受连接(得到一个与客户端通信的套接字QTcoSocket);connect(&amp;tcpServer, ...

2019-01-25 15:35:40 834

原创 Qt解决中文字符为奇数个报错的问题

此刻:来到这里的每一个人应该都是被Qt一个错误折磨的头皮发麻的吧,,有时候参数类型是QString,,我们 向传入一个中文,结果就报错,(可以把中文字符串的个数改为偶数个可以解决!!!)那么,,有没有一劳永逸的方法呢?????当然!!!–请 看 下 图–。。。。。。。。终 于 搞 定 了,,,,,,感觉整个人好多了!!!!~~~~~~~~~~~~...

2019-01-22 18:48:40 1449 2

原创 【QT学习】-----事件系统(三:事件过滤器、事件的发送)

事件过滤器前面在事件的处理方式中我们提到了事件过滤器;他能在事件到达处理函数之前获取该事件,并且可以实现在一个部件中监控其他多个部件的事件。使用事件过滤器的步骤:在.h文件中声明;bool eventFilter(QObject* obj, QEvent * event)在构造函数中为部件安装事件过滤器:例如:在textEdit 部件安装:ui-&gt;textEdit-&gt;inst...

2018-12-14 18:42:29 344

原创 【QT学习】----事件系统(二:定时器事件与随机数)

首先区别三个类:QTimerEvent类: 描述一个定时器事件QTimer类: 是一个定时器类(编程中大多使用这个设定定时器)QTime类: 是一个时间类,主要用于对时间的操作,他提供了大量的函数便于用户对时间进行转换和计算。开启一个定时器:int QObject::startTimer(int interval)参数说明:返回值:一个整型编号,代表这个定时器参数interval:...

2018-12-14 15:27:14 437

原创 【QT学习】------事件系统(一:事件的处理和传递 )

什么是事件??事件是各种应用程序需要知道的有有应用程序内部或者外部产生的事情或者动作的通称。在Qt中使用 一个对象来表示一个事件,继承自QEvent类。常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent、定时器事件QTimerEvent。任何QObject子类都可以接受和处理事件。事件和信号的区别?二者并不相同;比如单击一下界面上的按钮,那么就会产生鼠标事件(不是按钮产生的...

2018-12-13 17:00:10 671 3

原创 【QT学习】-----容器类

Qt 库提供了一组通用的机遇模板的容器类,可以用来存储指定类型的项目。例如:需要一个QString类型大小可变的数组,可以使用QVector&lt; QString &gt;Qt库的容器类跟STL中的容器差不多,如果了解STL,学习qt容器就照葫芦画瓢了。顺序容器:**QList&lt; T &gt;:使用append()、prepend()在列表的两端添加项目;insert()在中间插。...

2018-12-12 20:49:07 698

原创 C++实现单例模式

单例模式**应用场景:**在某个服务器程序中,该服务器的配置信息放在一个文件中,这些配置数据由一个单例对象同一读取,然后在进程中的其他对象通过这个单例模式对象获取配置信息。方便,简化在复杂化境下的配置管理。什么是单例模式?一个类仅有一个实例化的对象,并且提供一个访问它的全局访问点,这个实例对象呗所有程序模块共享。两个要求:该类不能被复制不能被公开的构造所以:拷贝构造,赋值函数都不能...

2018-10-17 00:23:30 437

原创 Linux下的链接文件

Linux下有多少种类型的文件?~~了解一下共7中:普通文件(-)目录文件(d)设备文件:字符设备(c),块设备(b)套接字文件(s);例如socket套接字链接文件(l),硬链接,软链接管道文件(p)简单了解下linux文件系统:每个文件都有一个inode;在Linux中,我们查文件时候,其实是通过inode节点查到的。只是将文件名和inode几点关联起来了,通过文件名就...

2018-10-02 01:30:26 833

原创 逆置单链表的部分区间---【VIPKID面试题】

给一个带头节点head的单链表,给定start和end两个位置,将这个区间内置。。。思路:就是链表的逆置;先将区间内的逆置,再处理start和end的位置两种情况:start是头结点时,要将链表的头结点head更新为end;start不是头结点是正常处理;(还是自己太菜了。。。。面试的时候先去处理start和endl了,导致后面没有处理好,,凉凉啊~~)不说了,贴上代码:void...

2018-09-30 16:03:32 315 1

原创 实现一个字符串缓冲区---【VIPKID面试题】

和面试官聊到内存管理的问题,然后让我实现一个字符串缓冲区的类,想到了思路,但是最后写出来的代码实在跟shi一样;凉凉了!!!、、、、、、、、、、、、、、、、、以下是实现一个字符串缓冲区的类;实现的不好,请大家指正!、、、、、、、、、、、、、、、、、#define _CRT_SECURE_NO_DEPRECATE 1#include&lt;stdio.h&gt;#include&lt;...

2018-09-30 00:54:03 671

原创 关于指针释放问题

看个例子:void test(){ char* str = (char*)malloc(10); strcpy(str,"hello"); free(str); if(str != NULL) { strcpy(str,"world"); printf("%s\n",str); }}运行test()会怎样?...

2018-09-13 21:52:48 1147

原创 如何优雅的在主线程中结束一个从线程?

面试题:如何优雅的在主线程中结束一个从线程?: 假如现在一个线程阻塞了,主线程要结束点从线程,怎么办? —回答:调用pthread_cancel()终止它线程的退出方式: 1. 从线程函数中return(不适合主线程); 2. 调用pthead_exit()函数终止自己; 3. 调用pthread_cancel终止同一进程中的其他线程。线程等待:pthread_join(...

2018-09-06 11:55:04 667

原创 完美世界的笔试编程题+删除字符串多余空格并且逆置字符串+双向链表实现队列

完美世界笔试题之破解密电前需要获取完整的数字电报,将电报里的数字反序同时还需要去除多余的空格; //例如:“1 5721 23” - &amp;gt;“23 5721 1” 我的思路:1,去掉开头和末尾的空格2,处理字符串中间的多余空格,(用后面的字符填充)3,旋转处理:先逆置整个字符串,再把每个字串逆置代码如下:#include&amp;lt;iostream&amp;gt;#include&amp;...

2018-08-28 23:49:29 279

原创 进程间关系及守护进程

进程组: 一个或者多个进程的集合。进程有自己的进程ID,同时他还属于一个进程组。既然有进程组那么肯定就有组长进程; 组长进程的ID等于该进程组ID;这个组中只要还有一个进程还在,进程组就在!与组长在不在没关系。作业控制:一个shell可以运行一个前台作业和任意个后台作业。前台和后台都可以由多个进程 组成。 什么是shell?: shell 单词是“壳”的意思,在Linux中shell就是一...

2018-08-01 16:48:47 158

原创 小青蛙走迷宫的问题

小青蛙有一天不小心落入了一个地下迷宫,小青蛙希望用自己仅剩的体力值P跳出这个地下迷宫。为了让问题简单,假设这是一个n*m的格子迷宫,迷宫每个位置为0或者1,0代表这个位置有障碍物,小青蛙达到不了这个位置;1代表小青蛙可以达到的位置。小青蛙初始在(0,0)位置,地下迷宫的出口在(0,m-1)(保证这两个位置都是1,并且保证一定有起点到终点可达的路径),小青蛙在迷宫中水平移动一个单位距离需要消耗1点体...

2018-07-30 09:12:37 683

原创 二叉树的镜像

什么是二叉树的镜像?如图: 过程:线序遍历二叉树的每个节点,如果当前节点有孩子,交换左右孩子;交换所有的节点的左右孩子就得到了二叉树的镜像。代码:void mirror_R(Node* root)//递归{ if(root == NULL) return; Node* tmp = root-&gt;left; root-&gt;left ...

2018-07-28 09:44:05 107

原创 实现一个网络版加法计算器

实现网络版本加法器,客户端输入两个加数发给服务器,服务端进行计算,并把结果返回给客户端。方案:定义request结构体;包含两个加数;定义response结构体,包含计算的结果;发送数据时将这个结构体按照⼀个规则转换成字符串, 接收到数据的时候再按照相同的规则把字符串转化回结构体;代码如下: 定义个头文件com.h 客户端client 代码: 服务端 server...

2018-07-27 00:21:17 1140

win10-vs2019-编译licurl.dll

win10-vs2019-编译licurl.dll,支持openssl

2022-07-21

build_openssl-3.0.5_Release_64_dll.7z

win10编译openssl动态库

2022-07-21

testWebengine.zip

Qt 实现网页交互

2021-01-25

实现线程池.rar

基于POSIX实现一个线程池,实现文件下载,下载工具使用wget。并且可以指定活动的线程数。在Linux平台运行。

2019-07-25

空空如也

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

TA关注的人

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