自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(170)
  • 资源 (7)
  • 收藏
  • 关注

原创 DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c000d

解决DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c000d

2024-03-15 09:30:39 719

原创 Ubuntu16.04安装VS Code中文化及创建快捷方式

帮助你在 Ubuntu 16.04 上将 Visual Studio Code 的快捷方式放到桌面。

2023-05-26 14:38:00 1700

转载 Qt应用重启

重启应用程序是一种常见的操作,在Qt中实现非常简单,需要用到QProcess类一个静态方法。

2022-09-15 14:09:43 2078 2

原创 Quick 书签菜单插件使用方法

Quick 书签菜单插件安装完成以后,直接点击浏览器上方工具栏中的插件图标,即可对浏览器中的书签进行查看和管理。

2022-07-08 09:48:35 1623

转载 独立按键和矩阵键盘驱动原理

独立按键和矩阵键盘的相关介绍

2022-07-05 13:30:26 860

转载 ANSI是什么编码?

用Notepad++创建一个文本文件text.txt,其默认编码格式为ANSI(乍看之下,还以为是ASCII呢),输入汉字居然不是乱码:保存为test.txt,发送给你美国的同事Bob。他也用Notepad++,不幸的是,却发现你的文件内容是这样的:也许你会认为:你用的是中文系统,能正常显示中文;他用的是英文系统,不能显示中文!这么想,好像很有道理呢!但是再细想一下:一个系统显示乱码,说明它不支持这种编码格式(或者解码方式不对)。难道英文系统不支持ANSI?难道ANSI是一种中文编码?如果你身边有一个韩文系

2022-06-12 18:54:42 3588

转载 Linux 编程基础2--什么是POSIX

一、什么是POSIX1. 概念POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),2. 发布者-IEEE发布者为电气与电子工程师协会(Institute of Electrical and Electronics Engineers),简称IEEE。这个协会老牛了【该组织在太空、计算机、电信、生物医学、电力及消费性电子产品等领域中都是主要的权威】!POSIX是IEEE为要在各种UNIX操作系统上运

2022-04-30 18:03:53 567 1

转载 Linux 编程基础1--文件IO和标准IO、系统调用与库函数

一、文件IO和标准IO1、什么是文件I/O和标准I/O文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于linux或unix平台。标准I/O:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性,标准I/O库处理很多细节。例如缓存分配,以优化长度执行I/O等。标准的I

2022-04-30 16:49:51 358

转载 C 标准库基础 IO 操作总结

其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数、输出参数和返回值,接下来才能开始设计具体的实现过程。C 语言标准库提供的接口功能很有限,不像 Python 库。不过想把它用好也不容易,本文总结 C 标准库基础 IO 的常见操作和一些特别需要注意的问题,如果你觉着自己还不是大神,那么请相信我,读完全文后你肯定会有不少收获。一、操作句柄打开文件其实就是在操作系统中分配一些资源用于保存该文件的状态信息及文件的标识,以后用户程序可以用这个标识做各种读写操作,

2022-03-31 13:47:45 418

转载 shell脚本判断僵尸进程

目录1、交互式 Bash Shell 获取进程 pid2、Bash Shell 脚本获取进程 pid#3、获取 Shell 脚本自身进程 pid#4、查看指定进程是否存在#5、关于/dev/null的说明:6、最后我的杀死僵尸进程脚本:1、交互式 Bash Shell 获取进程 pid在已知进程名(name)的前提下,交互式 Shell 获取进程 pid 有很多种方法,典型的通过 grep 获取 pid 的方法为(这里添加-v grep是为了避免匹配到 grep 进程).

2022-03-29 14:34:18 765

转载 揭开内存管理的迷雾

1、虚拟内存如果你是电子相关专业的,肯定在大学里捣鼓过单片机。单片机是没有操作系统的,所以每次写完代码,都需要借助工具把程序烧录进去,这样程序才能跑起来。另外,单片机的 CPU 是直接操作内存的「物理地址」。在这种情况下,要想在内存中同时运行两个程序是不可能的。如果第一个程序在 2000 的位置写入一个新的值,将会擦掉第二个程序存放在相同位置上的所有内容,所以同时运行两个程序是根本行不通的,这两个程序会立刻崩溃。操作系统是如何解决这个问题呢?这里关键的问题是这两个程序都...

2022-03-26 11:37:44 122

转载 深入理解malloc内存分配函数

最近想多写一些内存管理的文章,这次我们就以 malloc 动态内存分配为切入点,我在文中也做了小实验:目录1、Linux 进程的内存分布长什么样?2、malloc 是如何分配内存的?什么场景下 malloc() 会通过 brk() 分配内存?又是什么场景下通过 mmap() 分配内存?malloc() 分配的是物理内存吗?3、malloc(1) 会分配多大的虚拟内存?3.1、free 释放内存,会归还给操作系统吗?4、为什么不全部使用 mmap 来分配内存?5、既...

2022-03-25 15:30:05 683 1

转载 文件系统的一些基本概念

1、什么是文件系统文件系统的应用非常广泛,同时种类也是特别的多,并且不同平台也会使用不同性能和特点的文件系统,比如查找效率、数据安全等级等等,如下面windows使用的NTFS:不同的文件系统: 单片机常用文件系统:Fatfs、振南的Znfs等等; Linux常用文件系统 : Ext扩展fs、jffs,yaffs等等; windows常用文件系统 : NTFS等 ...... 虽然文件系统多种多样,看起来非常复杂,其实主要目的还是为用户提供读写数据的统一.

2022-03-22 18:28:41 1113

转载 线程局部存储

在多线程术语中,经常听到一个词就是“线程局部存储”,英文Thread-local storage,简称TLS。我们今天就来看看这到底是一个什么样的神秘东西。1 在讲解之前,我们先来看一个例子#include <QDebug>int invoke_count =0; // 用来记录调用common_function函数的次数void common_function (){ ++ invoke_count; //...}void print

2022-03-01 10:30:31 334

转载 嵌入式Linux系统脚本小技巧---启动脚本

这里介绍一个小技巧,在系统启动时,预留一个启动脚本,在需要临时修改一些系统配置或者额外启动程序时比较方便。这个方法主要针对只读文件系统,如果是可读写的文件系统则不需要了,可读写的文件系统可以随时修改。我们都知道一般嵌入式Linux系统启动脚本是/etc/init.d/rcS,我们的应用程序启动入口也是在这个脚本里添加,一般会在这里添加一个应用程序的启动脚本,最好不要再这里直接添加启动程序,这样便于后期应用程序启动脚本的修改,而不再需要修改文件系统里的脚本。现在在系统启动脚本rcS里添加一个应用程

2022-02-21 17:02:41 586

转载 一个极简的log模块

一个极简的log模块:log颜色可设置、带时间戳、文件、行号、函数,这个log模块仅包含log.h与log.c两个文件。1.log模块代码log.h:#ifndef LOG_H#define LOG_H#ifdef __cplusplusextern "C" {#endif#define LOG_BUF_SIZE 1024typedef long long (*get_sys_time_ms_def)(void);enum log_color{ COLOR_NU

2022-02-17 17:32:19 208

转载 Makefile模板

1.写在前面  对于Windows下开发,很多IDE都集成了编译器,如Visual Studio,提供了“一键编译”,编码完成后只需一个操作即可完成编译、链接、生成目标文件。Linux开发与Windows不同,Linux下一般用的的gcc/g++编译器,如果是开发ARM下的Linux程序,还需用到arm-linux-gcc/arm-linux-g++交叉编译器。Linux下也可以实现“一键编译”功能,此时需要一个编译脚本“Makefile”,Makefile可以手动编写,也可以借助自动化构建工具(如sc

2022-02-16 13:41:12 1923

转载 分享几个实用的嵌入式C程序

1、十六进制字符转整型数字功能:将16进制的字符串转换为10进制的数字。我是没有找到相应的库函数,所以参考网上的代码自己手动写了个函数来实现。常用的函数有atoi,atol,他们都是将10进制的数字字符串转换为int或是long类型,所以在有些情况下不适用。/*=============================================================================# FileName: hex2dec.cpp# De

2022-02-15 13:27:59 1296

转载 《小狗钱钱》——追加书摘

教育分流,人工智能……孩子要怎么准备,去迎接变幻莫测的未来?就像我们的父母,如今很难理解新型职业一样,到了我们这一代,也很难从自身阅历出发,规划孩子的人生了。尽管环境千变万化,总有一些朴素而宝贵的生存法则是恒定不变的,是需要我们帮助孩子做好支撑和构建的,比如:·有目标感和内驱力,发现自己的兴趣或特长·会赚钱也会理财,计划和管理好自己的生活·内心丰...

2022-01-06 18:51:57 228

原创 《蛤蟆先生去看心理医生》读书笔记

故事概要:《蛤蟆先生去看心理医生》这本书的人物设定是沿用英国作家肯尼斯格雷厄姆的童话书《柳林风声》里的人物,因为前者在书里提及了蛤蟆先生一段偷车、入狱、逃狱等惊险刺激的经历。 在本书中原本活泼开朗的蛤蟆先生突然变得情绪低落,整个人的状态和以前都不一样了,他的好朋友河鼠和鼹鼠在报纸上看到咨询师苍鹭的介绍,建议蛤蟆先生去和咨询师苍鹭交流试试。于是蛤蟆先生每周二上午去苍鹭的咨询室聊天,通过和苍鹭的对话以及对话后的思考,蛤蟆先生渐渐探索自我、改变想法,脱离了抑郁的情绪,重新振作...

2022-01-05 13:15:53 463

转载 如何查看局域网内所有IP

要如何查看局域网内正在使用的电脑的IP一共分以下几个步骤:第一步:点击电脑左下角的“开始”,然后再点击“运行...”。第二步:在运行窗口里填入“cmd”,然后点击确定。第三步:在cmd命令窗口输入“ipconfig/ALL”命令,点击键盘上的回车键。第四步:这时会在cmd命令窗口看见自己电脑的IP地址,用纸记下来。第五步:这时候在cmd命令窗口输入“for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.0.%i”,点击键盘上的回车键(注意.

2021-12-31 14:03:51 77400

转载 scanf,sscanf高级用法

最近遇到了解析配置的问题,用正规表达式感觉大题小做,使用sscanf因只会用基本用法,感觉功能不够,上网搜了下,解析起来不费吹灰之力,代码也很简洁。名称:sscanf() - 从一个字符串中读取与指定格式相符的数据.函数原型:Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );int scanf( const char *format [,argument]... );说明:sscanf与scanf类似..

2021-12-30 14:24:57 268

转载 小狗钱钱2——书摘

嘲笑他人是一件令人遗憾的事情。当你把目光都集中在别人的错误和缺点上时,就自然会忽略他们身上闪光的一面。而一个人只有具备了审视美好事物的能力,世界对他来说才会变得更加美好。 你可以给自己找一个貌似合理的借口,比如你可以说:‘我做不到,因为一切都是那么的不公平。’但是这样到底有没有用呢?你最终还是不能成功地达到目的。 甜甜圈中间的圆孔代表着人类的内心,可是这内心本身却是无形的。许多人并不关心自己的内心,就是因为看不到它。对于他们来说,只有看得见的成功才是重要的。但你如果想要变得幸福,就不能只重视物质上的成功

2021-12-29 18:40:47 140

转载 小狗钱钱1——书摘

致富的秘诀就是将你存完以后剩下的钱花掉,而不是将你花完以后剩下的钱存上。 想看一幅“没有画框的风景”,也许并没有之前所说的那么伤感,要走“很远很远”。关键在于你的心态,在你的心里究竟还有多少框框——“名人”的框框、习惯的框框、观念的框框…… 如果你想富有,请把自己变成一个小孩。因为小孩子的框框最少,他们诚实、快乐、乐于学习。 事实上,理财和实现富有对老百姓来说未必只意味着沉重与艰辛;理财和你热爱的其他任何事业都可如童话般有趣,如童话般简单。只要你诚实、自信、轻松、快乐,并乐于学习。 所有人都希望自己

2021-12-28 10:10:44 82

转载 常见的校验算法

UART有一个奇偶校验,CAN通信有CRC校验。Modbus、MAVlink、USB等通信协议也有校验信息。在自定义数据存储时,有经验的工程师都会添加一定校验信息。你平时通信或者数据存储时,有用到校验信息吗?下面就介绍几种常见的校验算法。一、校验和校验和是最基本,也是嵌入式工程师最常用的一种校验算法,其实现方法很简单,简单到只有几行代码。实现的方式方法很多,不同的编程语言,不同的应用有所不同,下面以C语言8位校验和为例:uint8_t CheckSum(uint8_t *Buf,

2021-11-30 13:06:52 968

原创 Linux C TCP通讯——可直接用于实际项目开发

TCP通讯代码demo:int is_valid_IP(const char *ipstr) { if (!ipstr) return 0; int a, b, c, d; int tmp = sscanf(ipstr, "%d.%d.%d.%d", &a, &b, &c, &d); if (4 != tmp) return 0; if (!(0 > a || 255 < a || 0 > b || 255 < b ||.

2021-11-23 10:55:23 1222

转载 C语言返回局部变量的几种用法--(经典例子)

一般来说,函数是可以返回局部变量的。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。 因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确来说,函数不能通过返回指向栈内存的指针(注意这里指的是栈,返回指向堆内存的指针是可以的)。下面以函数返回局部变量的指针举...

2021-11-21 12:07:33 2125 2

转载 protobuf-c之嵌入式平台使用

什么是protobuf-c之前的文章:《Protobuf:一种更小、更快、更高效的协议》详细介绍了protobuf及protobuf-c。这里再简单提一下:Protocol Buffers,是Google公司开发的一种数据格式,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。protobuf支持一些主流的语言,唯独没有支持C,所以诞生了第三方的protobuf-c。之前文章介绍了protobuf、protobuf-c在PC平台上的安装及使用,本篇笔记我们来把它用在我们的嵌入式

2021-11-16 18:13:26 1031

转载 Protobuf:一种更小、更快、更高效的协议

前言之前分享关于JSON的使用:例说嵌入式实用知识之JSON数据。JSON类型数据可读性很好,但是整个数据包中会带有一些无用的数据,会在一定程度上带来通信负担。本篇文章我们来分享一种更轻量的数据格式——protobuf。protobuf的优点: 更小、更快、更简单。 支持多种编程语言 。 解析速度快。 可扩展性强。 什么是protobuf、protobuf-c?Protocol Buffers,是Google公司开发的一种数据格式,类似于XML能够将结

2021-11-16 18:09:14 584 1

转载 2021-11-15

linux命令行下面执行某个命令的时候,首先保证该命令是否存在,若存在,但输入命令的时候若仍提示:command not found这个时候就的查看PATH环境变量的设置了,当前命令是否存在于PATH环境变量中#查看PATH:echo $PATH举例说,命令 composr 在/usr/loca/bin但执行的时候提示:-bash: composr: command not found这个时候,通过echo $PATH,,发现composer并未在PATH环境变量中有设置,这个

2021-11-15 10:37:51 431

转载 C语言常用转换函数实现原理

编程时,经常用到进制转换、字符转换。比如软件界面输入的数字字符串,如何将字符串处理成数字呢?今天就和大家分享一下。1、字符串转十六进制:void StrToHex(char *pbDest, char *pbSrc, int nLen){ char h1,h2; char s1,s2; int i; for (i=0; i<nLen/2; i++) { h1 = pbSrc[2*i]; h2 = pbSrc[2*i+1];

2021-11-08 10:30:20 333

转载 如何理解互斥锁、条件变量、读写锁以及自旋锁?

锁是一个常见的同步概念,我们都听说过加锁(lock)或者解锁(unlock),当然学术一点的说法是获取(acquire)和释放(release)。恰好pthread包含这几种锁的API,而C++11只包含其中的部分。接下来我主要通过pthread的API来展开本文。mutex(互斥量)mutex(mutual exclusive)即互斥量(互斥体)。也便是常说的互斥锁。尽管名称不含lock,但是称之为锁,也是没有太大问题的。mutex无疑是最常见的多线程同步方式。其思想简单粗暴,多线程共

2021-10-27 12:54:14 200

转载 Qt之QFuture

QFuture 类代表一个异步计算的结果。要启动一个计算,使用Qt之Concurrent框架中的 APIs 之一。QFuture 允许线程与一个或多个结果同步,这些结果将在稍后的时间点准备就绪,该结果可以是具有默认构造函数和拷贝构造函数的任何类型。如果一个结果在调用 result()、resultAt() 或 results() 函数时不可用,QFuture 将进行等待,直到结果可用为止,使用 isResultReadyAt() 函数可以检测结果是否已准备就绪。进度信息由 progressV..

2021-10-21 17:54:26 680

转载 Qt中使用gif动图加载大量数据

这篇文章的主要内容是:点击一个widget页面时,当加载的数据量过大时,会造成假死状态。此时使用gif动态加载图表示当前加载的状态。目前我使用的开发环境是:VS2017+QT5.14.2肯定有人觉得怎么用这么个怪异的开发环境,使用QT语言为啥不直接使用QtCreator呢?我只能说工作需要,哈哈。接下来我们主要讲解我需要实现的功能实现的功能是:点击父窗口的按钮,进入子窗口Dlg1中,并在子窗口Dlg1中加载数据,在加载数据的同时显示gif等待图片这个功能看着很简单,其实存在了以下几个难点

2021-10-21 17:47:38 760

转载 搞懂网线的水晶头超5类和6类的区别

5类水晶头和6类水晶头从外观上看并没有很大的区别,但实际上里面还是有很大的不同。5类水晶头的8根线芯是一字排开的,而6类水晶头的8根线芯是呈现上、下交错的形式排列。原因其实特别简单,标准的超五类网线线径是0.51mm,六类网线的线径是0.57mm,超六类网线的线径是0.58mm。那么问题就来了,如果使用合格的六类线塞入五类水晶头里,是很难塞进去的,所以很多人都尝试过用六类线装水晶头的失败率很高,因为尺寸不匹配,最终只是抱怨水晶头质量不好,也不曾想到小小的一个水晶头也有不同。.

2021-09-30 09:21:59 21428 1

转载 u-boot 和 bootloader 的内容以及区别

嵌入式软件工程师听说过 u-boot 和 bootloader,但很多工程师依然不知道他们到底是啥。Bootloader比Bootloader从字面上来看就是启动加载的意思。用过电脑的都知道,windows开机时会首先加载bios,然后是系统内核,最后启动完毕。那么bootloader就相当于手机的bios,它在手机启动的时候根据基带初始化硬件,然后引导系统内核,直到系统启动。Bootloader是嵌入式系统在加电后执行的第一段代码,通过这段小程序,进行硬件初始化,获取内存大小信息等,调整手机到

2021-09-30 08:50:56 251

转载 一文详解 C++ 日志框架

1、日志框架日志框架一个经过专门设计的实用程序,用于规范应用程序的日志记录过程。日志框架可以自己编写(需要一定的能力哦),也可以由第三方(例如:log4cplus)提供。对于不同的日志框架,各自在实现方式上也有所不同。虽然可以简单地“标准化”日志(例如:调用文件系统 API,将信息写入名为 log.txt 的文件),但是要成为一个严格意义上的框架,必须要超越标准化。也就是说,日志框架必须通过处理日志记录来标准化解决方案,从而暴露一个标准的 API。没明白?那就再具体一些,设想一个日志框.

2021-09-29 13:26:13 1140 1

转载 C语言指针:指针作为形参如何改变其指向的地址?

题目是什么意思呢?就是一个函数的输入参数是一个指针,该函数需要改变该指针指向的地址,如: 现在有一个全局数组b,现在需要编写一个函数 输入参数是一个指针a,需要通过该函数将该指针a指向数组b,即:int b[3] = {1,2,3};void fcn(参数);void main(){ int* a; fcn(输入参数a)}执行完fcn后,使参数的地址改变,这个功能怎么来实现呢?首先说明结论:使用二级指针。为了更好的理解这个问题,我们首先来学习一下指针最经典

2021-09-29 13:05:20 1836

原创 重装系统后,git无法拉取远程仓库更新

1、重新安装Git工具可以参考个该链接重新下载安装:Windows系统Git安装教程(详解Git安装过程)2、重新配置用git config配置 Git:$ git config --global user.name "John Doe"$ git config --global user.email [email protected]、尝试拉取报错:$ git pull origin master:masterThe authenticity of hos..

2021-09-25 10:38:22 9002

原创 无法定位程序输入点_except1于动态链接库MSVCR120.dll

重新下了最新版本的visual C++2013运行库,再安装QT,结果没有问题了。这里提供一个下载链接,亲测可用:Microsoft Visual C++2013运行库

2021-09-19 13:35:46 1404

NFS Server Windows版安装包

很方便的在PC端或者Arm Linux共享文件,大大的方便了文件的传输。配置简单易用,非常灵活方便。

2022-09-22

Quick 书签菜单插件,不仅能够对书签进行打开、删除、隐藏,同时还支持对这款书签管理器的横向布局等。

Quick 书签菜单插件,不仅能够对书签进行打开、删除、隐藏,同时还支持对这款书签管理器的横向布局、深色模式等进行自定义的设置。有了这款简单实用的书签管理工具,绝对能够为大家节省许多时间。

2022-07-08

VS2010适配番茄助手.zip

给VS2010 添加代码提示并去掉中文注释红线提醒的操作,绝对好用。在写代码的时候习惯了是用的IDE有代码提示,如果使用VS没有感觉更不应该,也非常不爽,所以加上番茄助手是最好的选择。

2020-04-25

WIndbg调试工具

软件调试工具,需要结合dump文件、.exe文件、pdb文件结合使用,当然最好有源码就更好了。

2019-01-16

数据库结构和数据对比工具(MSSQL)

1.自己从网上淘来的,修改了开发策略,没怎么用上; 2.具体功能还得实测; 3.挺好的东西,希望对需要的人有所帮助吧。

2018-06-09

CSocktServ_Clnt

1.VisualStudio2010编译,多线程socket编程代码; 2.C++代码; 3.运行没问题可能会有小bug,自己动手调调也可以学到东西。

2018-06-09

MyQtSocket_Client

1.之前上传了server端,现在上传client端; 2.Client没什么太大的特点,就是典型的连接服务器,具体代码中见吧。 3.希望对有需要的人有所帮助。

2018-06-09

Qt serverTest

1.自己也是吸收别人的经验稍微改动,可以实现多个客户端连接的server; 2.与其结合的还有一个client包,不知道为什么不能一起上传。 3.适合初接触socket编程的人参考,希望对下载的您有所帮助。

2018-06-09

空空如也

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

TA关注的人

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