自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux下复位usb设备

C++程序设计中,我们经常会使用一些第三方usb设备,有时会出现一些异常,我们一般可以插拔一下usb设备,让设备恢复正常。但是为了满足自动化需求或者针对不能插拔的情况,为了能够自动恢复,实际上也可以通过软件来复位usb设备。本文包含C语言和python两种实现方案。

2024-04-29 14:05:06 323 1

原创 SSD Sanitize 和 Format

SSD format和Sanitize区别

2024-01-23 14:18:20 1144 1

原创 C++11之智能指针

C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。

2024-01-10 14:09:03 921

原创 C++之单例模式

在面向对象编程中,有时候我们希望一个类只有一个实例化的对象,比如线程池,缓存等。这些类有且只有一个唯一的实例,这种设计模式被称为单例模式。

2024-01-08 14:46:24 1280

原创 Linux驱动安装遇到的问题(Kernel configuration is invalid)(Invalid module format)

Linux驱动编译和安装经常会遇到各种问题,上篇帖子ubuntu cp210x(USB转串口)驱动安装教程介绍了下载某官方驱动编译时编译不通过的问题,原因是代码问题。本篇主要讲系统环境引起的安装失败的问题。;。

2023-12-08 10:48:40 2689

原创 ubuntu cp210x(USB转串口)驱动安装教程

cp210x驱动安装教程及遇到问题的解决方案

2023-11-10 10:27:21 2743 2

原创 设备命名规则

存储设备的设备命名因操作系统而异,有时也因同一操作系统的不同版本而异。本页试图介绍存储设备的设备命名。

2023-08-10 10:46:50 790

原创 SSD产品核心参数

本文将简单介绍SSD产品的核心参数。

2023-04-13 10:40:44 1336 1

原创 Windows驱动SetupDi系列函数之枚举USB/PCIe设备

Windows开发过程中,有时候需要进行设备信息的管理,那么SetupDi系列函数能够满足你的要求。

2023-04-05 17:20:49 1777

原创 什么是SSD?SSD简述

SSD

2023-03-15 15:27:57 6207

原创 如何设置Qt应用程序的图标和可执行程序的图标

在 Qt 中设置应用程序图标和可执行程序图标的方法

2023-02-23 10:55:31 7326 1

原创 Windows下使⽤qt中gcc编译器(配置windows环境变量)

Windows下使⽤qt中gcc编译器(配置windows环境变量)

2022-06-08 16:00:52 2644

原创 QT编译生成的exe以及依赖dll打包成一个执行程序

QT编译生成的exe以及依赖dll打包成一个执行程序前言一. 获取依赖动态链接库1. 添加环境变量2. 获取DLL二. 打包前言我们通过QT编译生成的exe有时候因为一些依赖库问题,需要添加相关的动态链接库才能运行在其它电脑。所以,当我们传递运行程序给其它人使用时:一种方式是打包成安装包的形式,需要用户在机器安装执行程序;另外一种方式是绿色安装包的形式,也就是文件夹中包含了所有依赖的动态链接库。第一种方式对于一些小的软件来说,比较麻烦,复杂。第二种方式又显得文件多,误删之后可能导致不能运行等问题。 为

2021-12-06 11:11:51 2323

原创 Ubuntu如何访问windows共享文件夹

Ubuntu如何访问windows共享文件夹前言一. 方法步骤Step 1.Step 2.Step 3Step 4Step 5Step 6前言很多人需要工作在Linux系统下,但是由于种种需求,需要使用windows系统中的文件,使用U盘可能违反公司规定,并且频繁拷贝又不方便,那么我们如何在Ubuntu不安装软件的情况下访问windows系统中的文件?本文使用环境windows10和Ubuntu18做为测试环境。一. 方法步骤如果公司设置有共享的文件夹地址,请忽略Step 1 - Step

2021-11-29 09:47:23 6998

原创 Tiny Core Linux 桌面App设置

Tiny Core Linux 桌面App设置前言一. 命令方式二. 桌面操作方式前言Tiny Core Linux是一款极体积极小且高度可扩展的微型 Linux 发行版,它将一个 Linux 操作系统精简到仅有 10 多 MB 左右的大小。它的体积仅有十几MB左右,却依然提供了图形化的界面。而且得益于体积小,Tiny Core Linux 采用了将系统内核完全装载在内存中运行的方式,因此无论是启动还是运行速度都极快!那么如何进行桌面图标设置呢?一. 命令方式打开一个Terminal终端,输入以

2021-08-22 16:13:28 678

原创 Tiny Core Linux 保存配置

Tiny Core Linux 保存配置前言一. Tiny Core Linux 版本介绍二. 命令行版本(无GUI)三. 图形界面版本补充说明前言Tiny Core Linux是一款极体积极小且高度可扩展的微型 Linux 发行版,它将一个 Linux 操作系统精简到仅有 10 多 MB 左右的大小。它的体积仅有十几MB左右,却依然提供了图形化的界面。而且得益于体积小,Tiny Core Linux 采用了将系统内核完全装载在内存中运行的方式,因此无论是启动还是运行速度都极快!因为TinyCore

2021-08-22 13:40:27 1270

原创 Ubuntu系统实用软件安装

Ubuntu系统实用软件安装前言一. 便签工具(Indicator Stickynotes)前言方便系统安装后的环境配置。一. 便签工具(Indicator Stickynotes)sudo add-apt-repository ppa:umang/indicator-stickynotessudo apt-get update sudo apt-get install indicator-stickynotes ...

2021-08-14 14:19:27 163

原创 Ubuntu18.04更改国内镜像源(阿里云、网易、清华、中科大)

Ubuntu--更改国内镜像源(阿里、网易、清华、中科大)前言一. 不同镜像原地址1. 阿里源2. 网易源3. 清华源4. 中科大源二. 更换文件的方法步骤1. 备份Ubuntu默认的源地址2. 更新源服务器列表(1)替换法(2)直接修改法3. 更新前言最新安装好的ubuntu系统需要更换为国内镜像源,这样下载软件时速度会比较快。所谓的镜像源可以理解为提供下载软件的地方,比如iOS手机上可以下载软件的AppStore。ubuntu更换镜像分为以下几个步骤:Step1:备份原来的源;Step2:更换XX

2021-08-14 13:31:20 34237 2

原创 C++ 将十六进制字符串转换为二进制字符串

C++ 将十六进制字符串转换为二进制字符串前言一. 源代码前言一种简单的方法将十六进制字符串转为二进制字符串,不限制十六进制的字节数。一. 源代码传入的十六进制字符串需要转换为大写!(%X, toupper())。string GetBinaryStringFromHexString (string strHex){ string sReturn = ""; unsigned int len = strHex.length(); for (unsigned int i

2021-08-04 09:41:39 6479

原创 QT5.14.2+VS2019安装配置教程Windows

QT5.14.2+VS2019安装使用教程Windows前言一. QT的下载与安装1. QT的下载2. QT的安装二. 配置Visual Studio编译器环境1. 扩展工具下载2. 扩展工具配置前言由于Visual Studio 的功能强大,很多开发人员比较熟悉使用,所以可以通过将QT配置到Visual Studio中进行开发。一. QT的下载与安装1. QT的下载QT5.14.2下载地址2. QT的安装断开网络!断开网络!!断开网络!!!安装QT之前,需要断开电脑的网络连接,这样就

2021-08-03 10:04:02 5053

原创 头文件引用中<>与“”的区别

头文件引用中<>与“”的区别前言引用中<>与“”的区别1. 尖括号<>引用2. 双引号“”引用前言C语言中两种方式使用#include命令, #include <>与#include ””的区别是使用方式不同。引用中<>与“”的区别1. 尖括号<>引用尖括号<>引用表明这个文件是一个工程或标准头文件。查找过程会首先检查预定义的目录,我们可以通过设置搜索路径环境变量或是命令行选项来修改这些目录。2. 双引号“”

2021-08-02 10:00:19 883

原创 QT编译生成的exe启动时直接以管理员权限启动

QT编译生成的exe启动时直接以管理员权限启动前言不同编译器环境下权限增加方式1. MSVC下加权限的方法2. MinGW下加权限的方法前言我们通过编译生成的exe有时候因为一些账户权限问题,可能会导致获取一些信息失败,出现一些异常的情况,或者拿不到理想的数据信息。所以,要通过管理员权限启动软件保证程序的顺利执行。但是为了方便用户使用,在用户点击exe运行程序时,期望直接以管理员权限执行,而不需要再右击选择管理员权限,造成软件使用负担,给用户的使用带来不便。下面将会介绍如何使编译生成的exe直接点击就

2021-08-01 15:43:43 1018

原创 读取INI配置文件

读取INI配置文件前言一. ini文件例子二. Windows下实现方法1. 读取ini文件2. 写ini文件三. Linux下实现方法1. 实现方法四. QT跨平台软件实现1. QSettings读取ini文件2. QSettings读取INI配置文件带逗号的问题前言.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置。我们在进行程序开发时,经常会用到ini文件进行软件的信息配置,特别是需要显示大量信

2021-06-17 15:02:33 1546

原创 QTablewidget 鼠标悬停显示提示内容(Tooltip)

QTablewidget 鼠标悬停显示提示内容Tooltip一.环境及适用范围二.实现方法1. 开启鼠标捕获2. 接收和处理信号三. 具体源码1. 头文件2. cpp文件Qt中GUI设计经常会使用到QTabaleWidget控件,有时Item中显示的文字内容比较多,如果设置Item过大的话,文字虽然可以显示出来,但是整个页面就会显示的Item比较少。所以为了多显示Item,每个Item的大小设置还是要适中一些,带来的问题就是每个Item中显示的内容不全。但是还必须要让用户了解每一个Item中的内容,所有为

2021-06-17 14:19:34 11867 4

原创 C++ 多字节编码与Unicode编码

C++ 多字节编码与Unicode编码前言一. 什么是字符集(Charcater Set)与字符编码(Encoding)?二. 不同字符集的区别1. 不同字符集2. 优缺点三. char与wchar_t、string 与 wstring1. char与wchar_t2. string与wstring3. string与wstring转换四. 理解_T()、_Text()宏即L“ ”五. Dword、LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR前言任何“物种”都有

2021-05-06 15:16:36 3317

原创 Visual Studio如何实现.exe免安装免DLL运行[动态链接库--->>>静态链接库]

Visual Studio如何实现.exe免安装免DLL运行[动态链接库--->>>静态链接库]前言一. debug下的配置方法二. release下的配置方法前言目的:Visual Studio编译生成的.exe可执行文件,可以免安装免DLL在其他电脑直接运行。换句话说,将执行程序的动态链接库改成静态链接库。测试程序:测试程序分为 有MFC使用 和 无MFC使用。方法:就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库中的部分提取出来,链接到可执行文件中去,使可执

2021-05-04 14:50:56 3539 1

原创 Tiny Core Linux Install On USB Drive from Windows PC without a CD/DVD drive

Tiny Core Linux Install On USB Drive from Windows PC without a CD/DVD drive前言一、方法一(手动)(1).简单步骤(2). 详细步骤二、方法二(借助Rufus)(1).步骤前言请在继续之前备份所有重要文件,因为我们不希望任何人丢失他们的重要数据。为了防止任何类型的灾难,我们要求您备份所有重要数据,并将字母X分配给您的USB驱动器。但是,请记住根据您的系统要求更改此命令和本指南中的任何命令!!!一、方法一(手动)使用Wind

2021-04-02 09:47:29 684

原创 locate, slocate使用说明

locate, slocate使用说明前言locate/slocate使用更新数据库额外工具rlocate使用说明前言有时您需要立即找到一个文件,而不想在一个又一个目录中搜索它。此时可以访问CLI并locate到文件。或者slocate,取决于你机器安装的版本。使用locate或slocate只有一个问题,那就是保持最新的数据库。以下是它们的工作原理和使用方法,它们的使用灵活、及时。Slocate和locate的作用基本相同:在系统上数据库上搜索包含文件名和位置查找匹配项,并报告找到的所有匹配项。两者

2021-04-01 17:25:22 579

原创 Window和Linux系统下获取U盘UUID(逻辑序列号/卷序列号)

Window和Linux系统下获取U盘UUID前言一.Window系统下获取U盘UUID二.Linux系统下获取U盘UUID方法一方法二方法三前言①U盘每次格式化后会重新获得UUID。②U盘UUID一般是8位字符串。一.Window系统下获取U盘UUID找到U盘的盘符(e.g. C/D/E/F…);打开cmd窗口(按“Win+R”,输入“cmd”,点击“运行”);在窗口输入盘符+冒号,例如盘符为x,输入“x:”;e.g.x:继续输入“vol”,就能拿到8位UUID值。二.Li

2021-04-01 16:20:29 6528

原创 使用 git 时认证失败(Authentication failed )之解决方案

git时认证失败(Authentication failed )的解决你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示

2021-04-01 16:12:15 3238 3

原创 Linux打包发布qt应用程序

Linux打包发布qt应用程序一.环境介绍二.编译文件三.使用脚本文件获取依赖库文件1. 编写脚本文件2. 赋予脚本文件权限并执行3. 拷贝所依赖的qt平台的库文件注:直接ldd命令和可能遇到缺少库问题四.编写执行脚本1. 编写执行脚本2. 赋予执行脚本文件权限并执行Qt应用程序在windows下打包相对比较简单;Linux下使用Qt进行开发的程序,如果想要在其他搭载Linux系统的主机上运行则需要将要发布的Qt程序依赖的一些动态链接库一起打包,主要方法:Linux系统下可以手写一个脚本文件,充分利用ld

2021-03-10 13:43:04 381

原创 实现Linux系统启动程序自启动方法之一(实证)

实现Linux系统启动程序自启动方法之一(实证)在/etc/rc.local文件中编写启动程序的脚本。1. rc.local文件的配置1) rc.local的内容rc.local本质上是一个shell脚本文件,可以把启动时需要执行的命令写在里面,启动时将按顺序执行。就如同在终端执行的命令一样,写入到该rc.local文件中即可。文件的格式如下:#!/bin/sh -e# # rc.local## This script is executed at the end of each mul

2021-03-10 10:59:39 162

原创 [error]stack smashing detected

运行环境:程序是在Linux环境中的 qt 运行的。遇到过两种出错情况:一. 程序运行后中止,出现上述错误。二. 程序在当前Linux版本上编译后可运行,放到其它Linux版本上不能够运行,出现上述错误。简意就是,本Linux系统版本上编译的可执行程序只能在同Linux系统版本运行。**第一种情况:**出现stack smashing detected,即栈溢出,但不会定位到哪里出现溢出。1.原因:C语言比较“宽松、灵活,语法检查不严格”,在遇到数组越界、栈溢出等问题时编译时不会报出来,等到程序运行

2021-01-20 15:27:48 6945

原创 Ubuntu + Qt 开发环境配置

Ubuntu + Qt 开发环境配置第一步:下载 QT 安装包选择版本,以版本5.14.2为例,下载文件名”qt-opensource-linux-x86-5.14.2.run”的安装包;1.使用清华镜像进行下载:https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/2.使用 QT 官方下载:http://qt-project.org/第二步:安装 QT进入安装包所在路径 cd ~/安装包所在路径更改安装包权限sudo chmod -R 777

2021-01-19 19:41:37 702 1

原创 如何在C++中调用C函数?

标题 如何在C++中调用C函数?假如在一个项目中同时包含了C和C++,当C++调用C函数时,以传统C编程#include "xxx.h"后,声明函数。由于main.cpp 是个C++代码,以C方式的调用,g++编译器无法通过编译。解决方案一:重写一个专门被c++用的头文件(可能存在是别人已经写好的头文件,我们无法修改等问题)e.g. 添加一个头文件 tansfer.hextern "C" {#include "file1.h"#include "file2.h"}最后在需要调用C函数的c

2021-01-19 17:45:39 6656

原创 Warning: Implicit declaration of function xxx is invalid in C99???

标题Q? Warning: Implicit declaration of function xxx is invalid in C99???A:问题经常出现在C中,字面意思就是隐式声明的函数在C99中无效!!概念:隐式声明:指如果没有关于被调函数的特定信息,编译器便假定在这个函数的调用时传递的参数类型和个数都是正确的,同时会假定函数返回一个整数类型的值。【隐式声明的规则为:隐式声明的函数返回值都为int,参数类型则会根据你的入参来决定】简单来说,在C语言中,函数在调用前不一定非要声明。如果没有声明

2021-01-19 16:39:07 4528

原创 如何终止进程(结束main函数)?

标题 如何终止main函数C++中:1. return 1;2. exit(1);注:需要引用#include <stdlib.h>

2021-01-19 15:17:57 3021

原创 如何把一个十六进制byte数组转成十进制整数。

如何把一个十六进制byte数组转成十进制整数。 如 byte[2] = {0x01,0x00},即十六进制为0x0100,最终转为"256"?eg: byte[n] 转为十进制for (int i = 0; i<n; i++){result *= 256;result += byte[n-1-i];}

2020-11-20 09:39:22 2199

空空如也

空空如也

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

TA关注的人

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