自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 camera相关名词(持续更新中)

OIS Driver(防抖):相机防抖算法的实现,主要是通过OIS驱动在抖动过程中产生的信息和手机所在的位移信息,进行计算相互抵消从而达到防止画面抖动的效果,有时候因为adsp和OIS的IC口通信,经过多次数据传输可能会导致信息传递延时,从而性能下降。DirectChannel:和QMI类似,都是基于FastRPC封装的接口,但是接口更加简单易懂,除了open、close,所有的请求都通过config接口发送,所有event都通过共享内存读取。SOF:start of frame 帧开始。

2024-09-02 08:30:00 201

原创 Python生成指定数量的随机XML文件

我的需求是随机生成18位数字的XML文件名,其中前12位数字是随机数,后6位是时间信息。最后还是不得不感叹一下Python的语法是真的简单,库也很多很方便用。其中XML中写入CSN的tag值,代码如下。

2024-08-30 16:00:00 228 1

原创 HOOK实践

这里需要注意的是因为我是在dlg类中写的,所以这些变量函数都需要写在dlg类外,当然更美观的方法是写成xxhook.cpp , xxhook.h文件,还有一种方法是把钩子封装成dll库,这样对我这样的需求太麻烦了,而且当时用了dll库但是一直初始化的hook为null。键盘设备驱动程序解释扫描代码并将其转换(映射)为虚拟键代码(Vk_Code),这是一个由系统定义的独立于设备的值,用于标识键的用途,这个是window系统定义的是唯一的。接下来是另一种方法,也是我个人比较倾向的方法,因为简单hhhhh。

2024-05-20 08:30:00 633

原创 解决spawn-fcgi:child exited with: 127/126/1报错

*一定是找完整的文件名字,比如说我上面缺少的是libc.so.6 那么就一定要找完整的名字,如果找到了libc.so.2说明是其他的版本,如果直接建立软连接 ln -s libc.so.2 /usr/lib/libc.so.6 或者直接重命名成libc.so.6,那么必定会出现下面的报错,因为版本不一样,但是再次ldd 执行文件就不会出现not found了。执行文件的权限不够,如果是使用.sh文件进行执行的,首先对.sh文件进行权限修改。这个很多博客上面写有三种方法。

2023-10-07 08:45:00 368

原创 XFTP上传文件状态出现错误的原因和解决方案

之后我是直接把XFTP的登陆用户改为root才成功上传的,这还是用户权限的问题,如果XFTPssh登录虚拟机的时候用户是普通用户,那么很多文件夹都是只有root才可以进行写入操作的,也就是说。这几天有时候会出现XFTP会出现上传的时候状态出现错误的情况,我没那么在意,但是今天要传比较重要的东西,结果没办法传,我参考了。,但是感觉修改用户组的权限是正确的可能解释的没那准确。因为这个原因所以有XFTP端和虚拟机端两种解决办法。

2023-10-05 08:05:38 6117 5

原创 QT实现连接MySQL数据库以及查询等操作

写的时候发现每个表都需要使用数据类型(一维数组、哈希表、二维数组等)进行存储,而且基本上每涉及一个表就需要单独对这个表写增删改查之类的函数,这样造成了非常大的代码冗余,非常臃肿,但是目前我还没有想到什么办法能减少这种冗余简化代码,有一种方法是把数据库中的表对应的在qt中建立数据类,在类中建立对应表中表项的数据类型,之后查询到的数据对应的放到相应的类中,但是这样只是结构清晰了很多但是使用的内存空间还是同样大甚至更多。运行不成功的可能是MySQL数据库的动态库没有导入,可以看一下。来创建数据库对象,使用。

2023-07-27 09:00:00 6849

原创 QT读写ini文件

因此,settings.value(“client/user”).toString()的意思是从QSettings对象中获取"client/user"配置项的值,并将其转换为QString类型,以便在后续的代码中使用或进行其他操作。到之后发现其实并没有什么用,因为my.ini文件中默认是没有user和password项目的看网上说是老版本遗留下来的,我个人觉得它的作用可能就是改一下端口号,然后电脑可以同时存在两个版本的数据库,当然了可以自己填上去,然后到时候直接读也可以。

2023-07-26 09:00:00 306

原创 qt打包发布项目

但是需要注意的一点就是,如果自己的项目在开发时使用了第三方库,比如说使用了mysql数据库,又或者是音视频处理的库,这个时候在打包完成后需要在.exe所在的文件夹中加上libmysql.dll动态库文件或者其他的动态库文件,这个时候才能运行成功。执行完毕之后打开原本只存放exe的文件夹,就发现出现了很多其他的文件,这个时候点击.exe文件运行,自己的项目就运行成功了。首先在左下角的把项目模式从常用的Debug模式改成Release模式,同时记住自己的构建套件,我这里用的是mingw64位。

2023-07-24 09:00:00 281

原创 QTableWidget设置可展开可收缩

因为一开始有这个需求要写这个,因为我才开始学,还搞了挺长时间的。觉得不能白写,就写出来,效果我觉得还行。槽函数写成lambda表达式了,因为只用一次,没什么写成有名函数的必要。里面的图片路径设置成自己就可以,尺寸什么的我也是设置成固定的了,当然如果更熟悉布局或者习惯用布局的,还是推荐用布局,我用固定尺寸是因为比较好看到效果,要是qt可以像DW一样不用每次运行就可以看到实时改变就好了。这个QTableWidget的效果是:初始状态只显示两行,但是可以通过鼠标滑动查看之后的表格数据。下面是添加表中信息的。

2023-07-20 09:00:00 581

原创 QT:问题、解决与原因

部分。原因:不明。

2023-07-18 20:17:04 1766

原创 实践周--答辩问题答案

注解内部使用了 Spring 的消息转换器机制,可以根据请求的内容协商(Content Negotiation)来自动选择合适的转换器,将处理方法的返回值转换为客户端需要的格式,例如 JSON、XML 等。注解是 Spring 框架中用来标识组件的注解,它能够实现自动扫描、自动装配和作为其他注解的元标记等功能,帮助开发者将类纳入 Spring 容器的管理范围,提供依赖注入和其他 Spring 特性的支持。在控制器类中,可以定义多个处理方法,每个方法负责不同的请求处理逻辑,从而实现业务功能的分发和执行。

2023-07-12 15:05:55 169

原创 gpt生成的软件测试试卷

昨天考试考完了,感觉还挺轻松的,不过兼容性测试是什么鬼哇。。。然后下面用gpt生成的一些试卷和题目,不得不说国内镜像就是没有正版好用,国内镜像没有办法完全记住前面说过的一些要求之类的,基本上就是说几分钟的对话,前面的对话就忘记了。。。

2023-06-28 12:00:00 642

原创 实战记录01(QT连接MySQL显示未加载问题解决)

在之后请教了前辈:把QT+=mysql和lib以及includePath从文件中去掉,把mysql驱动的动态库文件添加到qt对应的目录中,我的目录是:…\Qt\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers,动态库文件我放到我的GitHub对应的仓库中了,有需要的小伙伴可以去。在添加上Mysql connector C++和MYSQL的lib和includePath,然后报错是未知的模块:mysql,再之后就怎么折腾都连接不成功。如果想看完整的代码,我也上传到。

2023-06-01 09:00:00 645

原创 初学QT(Day05)

相比于第一个demo,提升了鼠标和子控件的配合的灵敏度,同时保证了在鼠标出界的时候,子控件是保持在父窗口中的,同时依然在qt的应用程序输出窗口输出手柄的坐标。实际上还有很多问题,时间太长没办法全部记起来,但是重要的地方都记下来了,本来打算明天做一个圆形的手柄,但是今天又发了新任务,感觉难度比较大,可能没时间写了,如果想查看源码练手欢迎访问我的github主页,这是我练习qt的。总结了之前的经验教训,我重新开一个项目项目,先给出demo的结果吧,第一张是第一次写的demo,第二张图是成品的demo。

2023-05-30 09:00:00 328

原创 初学Qt(Day04)

使用x,y的变化的差,在当鼠标被点击的时候connect执行并且记录这个时候的鼠标(窗口)的位置,设置为初始位置,触发槽函数,把鼠标的释放作为出发定时器stop的标志,这个时候执行槽函数中的操作,之后松开鼠标,槽函数执行完毕,这个时候就相当于松开鼠标了,再重新设置手柄控件的位置(setGeometry()函数)为初始位置。因此,在Qt中,重绘事件的处理是通过paintEvent()函数来实现的,它是QPaintDevice类的虚函数,必须在子类中进行重写和实现。Qt中的重绘与其他事件处理是有所不同的。

2023-05-27 09:00:00 696

原创 初学Qt(Day03)

这样程序就进入到了这个子窗口的构造函数中,构造函数中初始化了一个存放七个颜色的Label数组,分别代表彩虹的七种颜色。然后分别初始化这七个元素,使用布局将这七个颜色放到一起,目的是可以达到七个颜色一起滚动的效果,然后在为定时器分配完内存之后就可以在槽函数中设置重复动作了,因为我当时设置的是向上滚动,事实证明这的确是最省力的hhhh,然后使用一个计数器,每次执行一次函数就自增1,然后对这个计数器模6取余,这样就可以使用数组下标对布局中的Label进行设置了。忘记了计时器的槽函数是一个重复执行的函数。

2023-05-26 08:00:00 1319

原创 初学QT(Day02)

今天又是学到很多的一天啊!

2023-05-25 15:00:00 581

原创 初学QT:使用QtDesigner绘制一个简单的界面(Day01)

我一开始因为不知道有Layout这个东西,也不知道Layout是做什么用的,到了做完了构建完了运行之后才发现,主窗口用鼠标缩放的时候,里面的控件没有办法随着窗口变化而变化,看起来非常不美观,之后查了资料才发现Layout这个控件,这个的作用就是固定一个布局,不管主窗口大小怎么变化,布局中的控件之间的相对位置是不变的,同时这样也省去的很多时间,而且因为qt是使用C++开发的,所以类的继承与派生也是适用的,比如果有一个控件FWidget,这个控件中还有几个控件SWidget1、Swidget2…

2023-05-24 08:00:00 2429 4

原创 Morris算法学习记录

Morris算法是一种可以用于遍历二叉树的算法,在刷题的时候发现实现二叉树前中后和层序遍历除了递归和迭代外,还有一种morris算法,可以实现二叉树的前中(后)遍历。主要使用回溯,但是他的回溯是回溯左节点不为空的节点两次(也正是因为最多只能访问某个节点两次,所以没有办法通过直接输出数值实现后序遍历),理解之后发现原来之前就见识过这种算法,只是当时不知道这种方法是一种算法,当时理解的还挺艰难的hhhhh我是看这一篇bolg理解的,我称之为。

2023-05-07 18:00:00 57

原创 Leetcode 85t最大矩形----做题有感

我当时定义的dp二维数组的意义是dp[i] [j]是从matrix[0][0]开始,以matrix[i ][j]为矩形右下角的最大矩形面积,可能也是我dp数组定义错了吧,反正怎么都写出变化方程,就看了题解。3.计算好dp之后,就可以转化成84题的处理方法了,do数组按行进行遍历,dp每行就代表一个柱状图,dp中每行每个元素的值,代表一个柱状图中每个柱子的高度,从上到下遍历和从下到上遍历在这里没有区别。在计算好连续的1之后,就可以按行寻找每行的最大矩形面积,直接使用84题中的方法即可。

2023-04-26 08:00:00 81

原创 软件体系结构作业:C++实现KWIC

听到管道过滤器首先想到的就是Linux里面的管道pipe函数和“|”,犹记得当初学Linux的时候经常ps aux|grep pid.管道过滤器实现是把运行程序比作一个管道,管道的两个口相当于是输入输出。这种风格的构件是对象,或者说是抽象数据类型的实例。主程序子程序方法,是按照具体实现的功能对构件进行组装,构件以子程序/过程/函数的形式出现。说实话我没感觉面向对象和主程序子程序有什么太大的区别,可能面向对象就是把操作/方法(子程序)封装成类了,所有的操作都是通过类对象的方法传递信息的。

2023-04-22 09:00:00 839

原创 多个指针指向同一内存区实践

在C++Primer中12章讲到内存的动态申请,delete能重复执行,尽量不要将两个指针指向同一块申请的内存。写了一段代码来看一下实际情况。

2023-04-19 09:00:00 372 1

原创 虚析构与纯虚析构

现在有两个类A,B。A是B的父类,此时A,B的构造、析构、拷贝函数都是public,B中有一个指针变量,B在构造函数中为这个变量申请内存空间(new),在析构函数中释放这个内存(delete)当在执行。明显可以看到没有调用Apple的析构函数,那么Apple中的指针变量a_name申请的内存空间就不会释放,那么就会造成内存泄漏。那么我们该怎么样防止这种内存泄漏呢----使用虚析构或者纯虚析构函数可以解决。不可以,因为在后面释放子类占用的空间时,需要用到父类的析构函数,所以必须实现纯虚析构函数。

2023-04-16 18:00:00 86

原创 关于Loki Allocator 0.1.7缺点的一些思考

比如说Golang的编译器,其实一开始是用C语言编写的,而后使用编译后的使用C++编写的Golang编译器再用Go写Go的编译器,这样编译完成后,Go语言编译器就实现了自举。第四点中:deffer指针的思想在VC的allocator有充分体现,大致意思是,当取出的这一整块已经分成小块的内存Block1中,有一小块内存bp被释放之后,会检查Block1中是否还有被释放过的内存来看这块刚被释放的内存bp是否是唯一一块释放的内存,如果是,那么deffer指针就会指向bp,不会释放,保留在内存中;

2023-04-10 07:20:27 116

原创 KMP算法

在看到这篇文章之前看了很多算法书(算法导论,算法第四版,数据结构与算法分析,…找资料的时候还发现很多算法书都没有写KMP算法,甚至有的写了字符串章节却没有KMP和BM算法)写的不是看不懂就是太晦涩了,这篇文章看了有一个小时,讲的非常详细,很多问题都考虑到了,我愿称之为“KMP最详细的解释”,而且作者使用C++写的,非常容易理解,不过我觉得在解释next数组时3.3.4部分加上一个可以递归两次的例子的整体的图片讲解就更好了,当时这个地方不懂在纸上走了好多遍才懂。

2023-04-09 18:00:00 55

原创 Leetcode 4t 记录

´༎ຶД༎ຶ`) ,对着题看了十几分钟,在纸上写了画画了写还是没想出来怎么写,然后就看了官方题解,讲的非常清楚,但是代码写的注释不多,我写出来之后,把自己理解的注释了下。主要还是记录一下这个题,hard难度的确是难;有兴趣的uu可以直接点击。

2023-03-26 18:00:00 42

原创 linux下动态库与静态库的制作与使用

1.需要对main.c文件添加动态库依赖,因为运行main文件的时候,动态库并不会打包到main文件中,而是会动态加载到main文件中,需要定位共享文件才可以使用动态库,使用ldd命令查看main文件的依赖。上面的这种方法是用户级别的改变,当切换用户之后,该依赖就会失效,那么系统级别的依赖需要打开 /etc/profile 文件(需要root 权限),同样输入。LD_LIBRARY_PATH —> /etc/ld.so.cache 文件列表 —> / lib/,,/usr/lib。

2023-03-22 21:00:37 301

原创 vscode远程连接虚拟机/云服务器

默认回车之后显示密钥创建成功,进入/home/用户名/.ssh文件夹,新建名为 Authorized_keys 将从vscode所在系统的id_rsa.pub中的内容复制到文件中,保存并退出,然后再次尝试在vscode中连接虚拟机,已经可以免密登录了。点击创建好的远程连接右边的图标,进行连接,出现新窗口后选择目标系统的类型,这边选择Ubuntu,继续点击continue,然后输入配置文件中用户对应的登陆密码。在自己vscode所在的系统中打开命令行(Win+R)在命令行中输入。在目标系统命令行中输入。

2023-03-22 06:53:27 2119

原创 Leetcode649t做题有感

在继续运行,此时正确的想法就和我的想法有了分歧,如果按照我的做法,继续遍历下标为2的元素’D’,那么将把R队列中的队首议员出队。直接点就是总是禁止当前议员的后面还未执行权利的对方议员的权利,这样后面的己方议员就会减少权利禁止的机会。分别用两个双端队列将元素’D’和‘R’对应的下标保存起来,然后对senate进行遍历,当当前元素是’D‘时,将R队列的队头出队,相当于禁止一名议员的权利。当两个队列中一个为空时,证明空队列对应的议员们的权利已经被另一派的议员禁止了,同时非空的队列对应的议员阵营胜利。

2023-03-18 18:00:00 126

原创 Ubuntu22.04开机网络无法连接,ping不通解决方案

Ubuntu20.04网络无法连接,网络角标消失,ifconfig显示只有lo,ping不通问题

2022-10-26 11:01:51 11496 17

原创 力扣刷题有感

力扣刷题有感

2022-10-02 08:14:32 137

原创 图的基本概念--思维导图(离散)

图的基本概念(离散)

2021-11-28 20:00:00 810

原创 Java栈操作

Java栈操作直接上代码 Java栈操作Node类Main方法MyStack类执行结果Node类public class Node { Object info;//数据域 Node next;//节点 //有参构造 Node(Object info, Node next) { this.info = info; this.next = next; } //有参构造 Node(Object info) {

2021-11-12 08:00:00 361

原创 Java队操作

Java栈操作 Java栈操作Main方法Node节点类MyQueue类执行结果话不多说直接上代码Main方法public class Main { public static void main(String[] args) { MyQueue mq = new MyQueue(); String s = "alibaba"; for (int i = s.length() - 1; i >= 0; i--) {

2021-11-11 08:00:00 352

原创 python之学生信息管理系统

python之学生信息管理系统 python之学生信息管理系统main函数student类student_manager_system系统执行界面和结果该系统实现分为三个文件进行实现:main.py,student.py,student_manager_system.py。他们分别别代表主函数实现,学生类和学生信息处理系统。代码如下:main函数import student_manager_system as sms# 导入py文件if __name__ == '__main__':

2021-11-10 08:00:00 549

原创 Java链表操作

Java链表操作 Java链表操作Node节点类Main方法MyList链表类运行结果此链表由三个文件组成MyList,Node,MainNode节点类public class Node{ int info; //数据域 Node next; //节点 Node(int info,Node next) //有参构造1 { this.info=info; this.next=next; } Node(int info) //有参构造2 { this(info,

2021-11-09 19:52:53 423

原创 JAVA实现范围求和

JAVA实现范围求和 JAVA实现范围求和题目描述题目分析代码实现总结题目描述给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。示例:题目分析这个题实际上是考验数学思维的题每次

2021-11-08 08:00:00 243

原创 python之文件操作3.0

python之文件操作3.0文件备份# 文件备份# 使用只读打开文件 读取文件内容 关闭文件# 以只写方式打开文件 将之前文件内容写入新文件# # 关闭新文件f=open('1.txt','rb')buf=f.read()f.close()f_w=open('a[备份].txt','wb')f_w.write(buf)f_w.close()# 文件备份优化file_name=input('请输入要备份的文件名')f=open(file_name,'rb')buf=

2021-11-02 20:00:00 105

原创 二叉树的性质(图解)

二叉树的性质(图解)

2021-10-31 20:00:00 57

原创 二叉树的递归遍历(c++)

二叉树的递归遍历(c++)图解(听网课截的图)ps:如果一开始看不懂的话可以先从最小的一棵树看起,然后再逐渐向上拓展,这样看懂基本上问题不大。代码实现这里实现主要还是利用递归和指针指向下一结点。#include <iostream>using namespace std;struct binarynode{ char ch; binarynode* Lchild;//左孩子 binarynode* Rchild;//右孩子};//递归遍历函数vo

2021-10-31 08:00:00 164

空空如也

空空如也

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

TA关注的人

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