自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (9)
  • 收藏
  • 关注

原创 华米手表安装第三方应用

一、测试环境华米运动手表3(其他类型的华米手表不确定)手表的usb连接线装有android studio的电脑二、前期准备将手表通过连接线接入电脑,然后打开cmd,输入adb devices。没有问题的话会出现以下内容:C:\Users\20578>adb devicesList of devices attachedbfae1b28 devicebfae1...

2020-01-27 22:16:00 16506 2

原创 使用树莓派打造一台收音机

一、材料先放上图片材料:树莓派3b+、tea5767模块(收音机模块)和4根杜邦线。树莓派3b+大约200元,tea5767模块大约25元吧,杜邦线不值钱。顺便说一下,tea5767芯片更便宜,但需要自己做PCB.我动手能力比较差,所以直接买了。树莓派淘宝直接搜就行,tea5767模块放个我买的的链接。https://m.tb.cn/h.eNmGD2h二、连接现在开始接线。首先通过...

2019-09-28 16:07:02 4535

原创 gpgme库的编译和使用

序言除非万不得已,请不要使用gpgme,openssl是更好的选择。原因有三,第一点,openssl能在网上找到很多例子,出错了很容易找到原因,而gpgme吗?呵呵,别看它用的多,但找到的都是gnupg命令相关的,除了stackoverflow能找到点。第二点,openssl封装的不算彻底,而gpgme呢?呵呵,傻瓜式的接口,极易上手,但你就基本了解不到算法了,第三点,你以为使用gpgme就使用...

2019-09-14 22:20:19 2764 3

原创 c++父类与子类的this指针与虚函数表指针

今天遇到一个很有趣的c++写法,将其写成一个小例子分析一波。头文件:#ifndef DEMO1_H_#define DEMO1_H_#include <iostream>#include <typeinfo>using namespace std;class B;class A{public: static B* s_cP;};cl...

2018-08-17 14:50:54 2907 4

原创 qt实现唱片效果

之前做过音乐播放器,但是之前的播放器没有做在线搜索的功能,只能播放本地音乐。所以这次打算利用各个音乐api接口实现在线搜索的功能。看到qq音乐有一个类似唱片的效果,就是音乐图片随着播放慢慢自旋。但是api提供的图片是方形的,如果自己用软件裁剪太麻烦了,所以要在代码里进行处理。所以打算利用遮盖来做出类似的效果。先上代码:diskWidget.h#ifndef DISKWIDGET_H#...

2018-07-03 15:05:14 351

转载 C++中 线程函数为静态函数 及 类成员函数作为回调函数

线程函数为静态函数:  线程控制函数和是不是静态函数没关系,静态函数是在构造中分配的地址空间,只有在析构时才释放也就是全局的东西,不管线程是否运行,静态函数的地址是不变的,并不在线程堆栈中static只是起了一个装饰的作用,所以二者并没有必然的关系  线程也是一种资源,是受系统调度的。因此,你必须要让系统知道你的线程的起始位置,即线程函数的指针。Window系统的接口(API)是C标准的,...

2018-03-20 11:08:39 517 1

原创 音乐播放器中期总结(类似于qq音乐的歌词显示)

在前期总结中,我写了多个类控制一个ui界面,事实无须如此。可以把你想要让ui界面下的某个部分让某个类去做,只需要将ui->widget传进该类的构造函数中即可,然后就可以在这个ui部分上为所欲为了。 示例 /播放控制界面/ pcWidget = new PlayControlWidget(ui->playControl);//这个自定义类,用于播放控制栏界面设计上为所欲为了

2017-12-21 23:29:43 562

原创 多个类操作同一个Ui界面的方法(音乐播放器前期总结)

最近自己在做类似于QQ音乐的播放器,用Qt模仿它的界面去写的。本地音乐播放功能差不多实现,除了歌词。现在已实现的功能:(1)本地歌曲播放                                 (2)播放,暂停,下一首,上一首                                 (3)从文件夹添加歌曲至本地歌曲列表并显示

2017-12-14 16:59:42 1123 4

原创 学习Qt过程中的一些想法

最近在看《Qt Creator快速入门》 一书,以前也用过Qt,但就像半路出家的和尚,很多部件并不知道作用也没用过,有时为实现某种效果遇到困难时去百度,即使实现了往往知其然而不知其所以然。所以才准备看这本书,看了也收获颇丰。总结一下我今天的一些感想,也是之前不太理解的地方。(1)以前经常实现自己的某个窗口或部件时,都会写自己的类,当然框架它会自己生成。例(1)class MyLin

2017-12-02 01:58:04 303

原创 Qt ui控件代码先后顺序的tips

MyMainWindow::MyMainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MyMainWindow){ manger = new QNetworkAccessManager(this); connect(manger, SIGNAL(finished(QNetworkReply *)

2017-11-27 01:53:16 1962 1

原创 做个生成和扫描二维码的windows小应用

想做一个视频聊天的程序,因为用到了编码和解码,所以几天一直在自学ffmpeg。无从下手便从最经典的output_examples.c代码看起。着手重写一遍才发现,很多很多API和宏定义都完全不一样了,结合APIChanges 和度娘坑坑洼洼地写了几天快写完了,昨天凌晨手残忘记保存关机了,全没了。不过无所谓了,差不多理解了(强行安慰自己)。在这几天,花了一天时间用qt做了个二维码的小程序,生成二维码

2017-11-12 16:48:56 1342 1

原创 基类和派生类的地址和布局

#include using namepsace std;class A{    int m_nA;};class B{    int m_nB; };class C:public A,public B{    int m_nC;};int main(){    C * pC = new C;   

2017-10-19 23:20:56 619 2

原创 c++ this指针常见知识点

this指针是一个很神奇的东西,一个指向对象本身的指针。首先最大的疑问是你在成员函数的形参上没有定义this指针,它是哪来的。其次它怎么能指向对象本身,它占空间吗?它的生命周期多长?下面总结一下答案(1)this指针是一个被编译器隐藏起来的函数参数,每个成员函数默认第一个参数为T *const this(可以看看python类的成员函数,就要手动写this)(2)this在成员函数开始

2017-10-18 00:55:28 295

转载 malloc和new的区别

正文回到顶部前言几个星期前去面试C++研发的实习岗位,面试官问了个问题:new与malloc有什么区别?这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进行重载;然后强行分析了一下自由存储区与堆的区别。回来后感觉这个问题

2017-10-15 23:54:39 151

原创 指针与引用

今天看了《程序员面试宝典》,看到指针与引用一章,看到一些比较好的题目,记录下来,以便之后回想。struct S{    int i;    int *p;}main(){    S s;    int *p = &s.i;    p[0] = 4;    p[1] = 3;    s.p = p;    s.p[1] = 1;    s.p[

2017-10-15 20:03:54 145

原创 位运算算法

今天看程序员面试宝典,看到一道很有趣的位运算题。于是,感觉很有用,便总结几道有用常见的位运算算法1     int f(int x, int y)       {           return  (x&y)+((x^y)>>1);       }这个位运算目的是为求x和y的平均值,即(x+y)/2分析:首先把x和y想象成二进制数,若求其平均,则先x+y按位相加,

2017-10-12 22:09:28 209

转载 关于namespace的文件组织

在C++新规定里面,引入了#include的方式,而虽然对#include兼容,但是前者解决了在大文件时候的命名冲突问题,下面就讨论一下namespace是如何使用,C++中的容器等使用时候为什么必须加std::,如std::vector vi。我查看了一下C++中的头文件(这里是不包含.h的模板头文件,关于头文件的组织形式,可以参考:C语言中关于.h和.c的问题和.h文件和.cpp文

2017-10-11 22:03:27 271

转载 linux c++线程池实现 - tbsys实现详解

linux线程池 - tbsys实现详解一年前刚刚毕业入职还会写几篇博客,后来项目取消开源要求员工删除博客,写博客这件事情就荒废了。一年后,回忆一下,如果不养成写东西的习惯可能很难积累下知识,成长会慢很多。现在还是继续写吧,也可以读读其它开源代码写一写。tbsys是阿里的一份开源代码,在阿里集团广泛应用,由多隆大神创作,内部代码实现有很多精致巧妙的地方。今天学习下tbsys的线程池实现

2017-10-10 21:52:54 531

转载 linux syscall系统调用获取线程PID

linux syscall系统调用获取线程PID线程idLinux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSIX线程库实现的线程其实也是一个进程(LWP),只

2017-10-10 21:49:04 799 1

原创 python爬虫

刚学python,边看教程亦步亦趋写了个最简单的爬虫,下面介绍一下网络爬虫重要的组件下图是URL管理器:主要作用是保存新的URL,防止重复抓取和循环抓取有两个缓存空间:待爬取URL集合:set(), 已爬取URL集合:set()网页下载器(urllib2)作用:将互联网上URL对应的网页下载器到本地三种常用写法(1)import urllib2

2017-10-06 15:08:29 415

原创 python 类的继承

最近几天在自学python, ma

2017-10-03 14:19:08 261

原创 双向循环链表的头插尾插中间插基本操作

以前一致一直用单向链表,而且对链表的理解模模糊糊,经过一段时间的理解刷题,略微懂了链表的操作,下面贴一下我不借助任何书自己通过草稿想出来的双向循环聊表链表基本操作#include #include struct Test{#include #include struct Test{ int num; struct Test *prior; struct Tes

2017-09-29 15:37:12 1932

原创 牛客网刷题总结1

1. 内联函数不能是递归函数,原因:内联函数在编译的时候会展开,而递归函数并不知道它什么时候能结束,也就不知道能展开多少次。所以不能用作内联函数。当然你写上inline编译器会自动忽略掉。2. 返回局部变量的地址是不可以的。这句话展开来说,不是说返回子函数内定义的指针就不对,而是要看指针指向的那段空间在程序内存块的哪个地方。局部变量一般在

2017-09-25 09:28:36 431

原创 商泰面试总结(嵌入式开发)

首先一面面试(技术面)面的不好,很多问题都不会,基础优点薄弱。其次自己b把自己往坑里带,面试官都说再往下说你要陷坑里了。好吧,面试官是个好人,我好羞愧。不过自己能看到自身的不足,认识到自己离一名真正的优秀程序员还有多远的路要走,便如茫茫黑夜能觅得一盏明灯一样的幸运。无论过与不过,都对我的成长有很大的帮助。  下面我讲的不是面试技巧,面试技巧的确有用,但提高自己的能力更重要。下面时我总结面试官问

2017-09-23 13:23:35 2704

原创 linux和windows gcc g++ vc编译器字节对齐

首先可以肯定的说,肯定和编译器有关,vc编译器和gcc,g++编译器肯定不一样,不说明是什么编译器什么系统下问你结构体长度就是在耍流氓。(1)vc编译器下结构体成员首地址地址必须被该结构体成员长度整除,打个比方,double a的首地址如果为0x06, 那是不行的,再填2个字节将其首地址变为0x08。并且最后的字节总长度为最宽长度的整数倍,不足补齐(都是按照对齐模数来的)(2)gcc和g+

2017-09-15 16:16:17 1387 3

原创 写银行管理系统遇到的一点小困惑

作为一名即将找工作的大四狗,最近在写一个银行管理系统,当然纯粹是玩玩的。客户端是用windows 下的QT完成的,服务器的环境是linux。写了6天,客户端大致完成,现在谈谈我在写客户端时遇到的一点小收获和小困惑以及总结(怕我以后遇到同样的错误再犯以此写此文)。(1)由于很久没有用qt,不太熟悉,所以从登陆窗按登陆键跳到主菜单都不太会了。从网上找了点方法,很多说的我一愣一愣的,最后采取最简单的

2017-09-06 15:40:36 728

原创 c++学习2

1.强制类型转换c语言的类型转换 例子:       char *b;       int *a = (int *) b;缺点:b的步长发生改变,很危险c++:static_cast强制类型转换用于不同数据类型的转换例子:int count = static_cast(num);reinterpret_cast强制类型转换用于指针类型转换例子:cha

2017-02-09 10:34:51 130

原创 c++学习1

(1)c++之父:本贾斯.斯特劳斯特卢普(2)c++语言的标准:c++98 c++03 c++11 c++14(3)c++集成开发工具(IDE):Eclipse CDT(Linux环境)        VS(windows环境)(4)c++对c的升级(区别)     c++是一种面向对象的语言,而c是面向过程的语言(5)面向对象的三大特点:继承,多态,封装 因此c++作

2017-02-07 10:08:48 149

原创 指针与数组的易错点归纳

序:指针与数组是C语言中最常见的,其不同已于前面总结过,今天我写一些我在写C语言程序中遇到的错误,肯定不完整,但也可以作为错误总结防止再犯。在写之前,首先我要总结一点,那就是数组远比指针可靠,除了发送实参和接收形参外,能用数组的尽量不要用指针。首先第一点,指针最容易出现的问题是野指针,即访问了一段非法的地址空间。通常来说,指针必须指向一段你要求指向的空间,而当你只定义一个指针却并未

2016-12-02 23:58:46 734

原创 itoa函数的实现

itoa函数在linux中并没有,所以我尝试写了一个my_itoa函数,方便调用。当然由于原有itoa存在进制转化(即第三个参数),我并没有加上,所以默认是十进制,但我将float型转字符串加了进去,功能基本实现,写的可能有点啰嗦,敬请斧正。源码附上#include #include #define MAX_SIZE 1024void my_itoa(int value_int

2016-11-30 20:41:01 227

原创 YL-56声音检测模块

YL-56可以检测声音的有无,工作在3.3-5v,灵敏度可调(通过调节电位器),该模块有三个口,VCC,GND,DQ,;有两个指示灯,一个为电源指示灯,另一个为开关指示灯(超过设定的阈值就亮),DQ没超过阈值输出高电平,超过就输出低电平。该模块相对简单,没有特定的驱动程序下面附上我写的程序(检测到高声音蜂鸣器响lcd提示)lcd库#include #include ".

2016-11-13 20:37:16 4362 6

原创 互斥锁

互斥锁初始化函数原型int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_mutexattr_t *mutexattr)表头文件:#include mutex:互斥锁mutexattr:PTHREAD_MUTEX_INITIALIZER创建快速互斥锁PTHREAD_RECURSIVE_MUTEX_INITIALI

2016-11-12 23:19:47 254

原创 pthread_exit与pthread_join的区别

pthread_exit(void *ptr) 函数使线程退出,并返回一个空指针类型的值。pthread_join(pthread_t tid,void **rtval)调用此函数的进程/线程等id为tid的线程返回或被终止,并从它那里获得返回值。注意,退出函数返回的是一个空指针类型,接受函数也必须用一个指针来接收。但是函数给出的参数是接收指针的地址,即,接收到的指针值写入给出的地址处的指

2016-11-10 21:04:27 1125

转载 线程和进程的选择

我们编写程序,到底是采用多线程还是多进程?这里是有区别的,采用不同的机制能够获得的效率也不一样。如何选择适合我们自己的程序的机制呢?下面是一些常见的选择的看法,不过也只是提供给大家参考参考,具体设计的时候还是要自己处理。一个程序里面的所有的线程都在同一个运行空间中执行。而一个程序的子进程则是运行在另外的执行空间中的,这里是通过调用了exec函数来实现的。同一个进程中的某个线程的故障

2016-11-09 22:48:40 218

原创 多线性的实现

线性的创建pthread_create函数函数的作用:创建线程表头文件:#include 函数原型:int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg)函数参数:*restric

2016-11-08 18:42:42 214

原创 线程概述

1线程属于进程,是CPU调度和运行的基本单位,比进程更小。2进程不拥有系统资源,但与该进程其他进程共享资源3使用线程的原因:(1)通过将进程分解为多个顺序线程使设计简单                                (2)线程比进程更轻量级                                 (3)易于提高性能4线程优点(1)提高程序响应速度  

2016-11-07 22:37:58 174

原创 dht11模块的学习

dht11传感器是用来测温湿度的传感器。dht模块价格相对便宜(一般在4、5元左右),所以测温湿精度性不高,温度精度大概在+-4之间,湿度精度大概在+-1之间,如果这是学习之用还是可以的。    我看过dth11的中文资料,它工作在3-5.5v,传输数据采用的是单总线,一次完整的数据传输有40bit,分别为温度整数部分+温度小数部分+湿度整数部分+湿度小数部分+8bit校验位;但在调试程序的过

2016-11-05 19:44:51 1471 2

原创 有名管道

mkfifo函数作用:创建fifo文件函数的原型:int mkfifo(const char *pathname,mode_t mode);函数的参数:pathname:文件路径mode:文件权限返回值:成功返回0,失败返回-1,错误原因存在于errno中#include#include #include #define FIFO "/tmp/2"i

2016-10-27 13:40:31 250

原创 信号量

semget函数的作用:创建信号量函数的原型:int semget(key_t key,int nsems, int semflg)函数的参数:nsems:创建信号量的数目semflg:同open一样的权限semctl函数的作用:信号量的控制:初始化,删除函数的原型:int semctl(int semid,int semnum, int cmd,union semun

2016-10-26 16:48:43 318

原创 消息队列

msgsnd函数的作用:写数据到消息队列函数的原型:int msgsnd(int msgid,const void *msggp,size_t int msgflg)函数的参数:msggp 消息、结构msgsize:消息的字节数msgflg:IPC_NOWAIT(写不进去直接返回)O:知道能写进去消息为止omsgctl函数的作用:控制消息队列,可以删除消息函数的

2016-10-25 21:11:53 194

基于linux c的贪吃蛇小程序

需要apt安装nurses-dev这个库才能正常运行

2021-06-30

树莓派tea5767收音机

提供了树莓派对tea5767模块的操作代码,可二次开发,使用例子请参照main函数。Mute功能目前还存在问题。如何搭建树莓派收音机请参照我的博客 《使用树莓派打造一台收音机》,谢谢。

2019-09-28

基金信息助手

这是一个用于爬取基金信息的小工具,贴的是工具源码。信息来源于天天基金,可以自主搜索并添加基金,能备份至数据库,能调节数据刷新频率。双击圆形图标能切换估值和净值,鼠标移到图标上有基金信息。主要用了sqlite再加上正则表达式。做的比较简陋,仅供参考和娱乐。有任何不足敬请指正。

2018-11-18

二维码生成和扫描器2

生成和扫描二维码,qt5做的,包含libqr和QZXing库,无论需要源码还是库都可以下载,如果.pro打开失败就可以用自己的qt生成,再拷贝源码。QT版本问题应该不是问题

2017-11-13

二维码生成和扫描器

生成和扫描二维码,qt5做的,包含libqr和QZXing库,无论需要源码还是库都可以下载,如果.pro打开失败就可以用自己的qt生成,再拷贝源码。QT版本问题应该不是问题

2017-11-12

python爬虫

python爬虫,比较基础,适合初学者,Main.py里的初始URL可以更换成你想要挖掘的网站

2017-10-06

openv人脸模板采集程序

自己做人脸识别时写的小程序,space键快门,如果识别出人脸,画圈,再按w保存图片,按q放弃保存,图片大小92*112,保存路径和图片大小都可自行修改

2017-08-25

HC-SR04程序加资料

HC-SR04程序加模块,有51程序,自己改改就能用

2017-08-25

opencv3.3 vs2010 debug版(Cmake编译 包含contrib)

vs配置和网上配置一样,只不过编译时多编译了cotrib的包,因此surf等算法也是可以使用的,xfeatures.h等头文件都有,本想放源码,不过太大,可以自己去opencv官网下

2017-08-25

空空如也

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

TA关注的人

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