c++
文章平均质量分 64
花好约猿上王者
这个作者很懒,什么都没留下…
展开
-
Linux下复位usb设备
C++程序设计中,我们经常会使用一些第三方usb设备,有时会出现一些异常,我们一般可以插拔一下usb设备,让设备恢复正常。但是为了满足自动化需求或者针对不能插拔的情况,为了能够自动恢复,实际上也可以通过软件来复位usb设备。本文包含C语言和python两种实现方案。原创 2024-04-29 14:05:06 · 573 阅读 · 1 评论 -
C++11之智能指针
C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。原创 2024-01-10 14:09:03 · 943 阅读 · 0 评论 -
C++之单例模式
在面向对象编程中,有时候我们希望一个类只有一个实例化的对象,比如线程池,缓存等。这些类有且只有一个唯一的实例,这种设计模式被称为单例模式。原创 2024-01-08 14:46:24 · 1307 阅读 · 0 评论 -
Windows驱动SetupDi系列函数之枚举USB/PCIe设备
Windows开发过程中,有时候需要进行设备信息的管理,那么SetupDi系列函数能够满足你的要求。原创 2023-04-05 17:20:49 · 2427 阅读 · 0 评论 -
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 · 6611 阅读 · 0 评论 -
头文件引用中<>与“”的区别
头文件引用中<>与“”的区别前言引用中<>与“”的区别1. 尖括号<>引用2. 双引号“”引用前言C语言中两种方式使用#include命令, #include <>与#include ””的区别是使用方式不同。引用中<>与“”的区别1. 尖括号<>引用尖括号<>引用表明这个文件是一个工程或标准头文件。查找过程会首先检查预定义的目录,我们可以通过设置搜索路径环境变量或是命令行选项来修改这些目录。2. 双引号“”原创 2021-08-02 10:00:19 · 940 阅读 · 0 评论 -
QT编译生成的exe启动时直接以管理员权限启动
QT编译生成的exe启动时直接以管理员权限启动前言不同编译器环境下权限增加方式1. MSVC下加权限的方法2. MinGW下加权限的方法前言我们通过编译生成的exe有时候因为一些账户权限问题,可能会导致获取一些信息失败,出现一些异常的情况,或者拿不到理想的数据信息。所以,要通过管理员权限启动软件保证程序的顺利执行。但是为了方便用户使用,在用户点击exe运行程序时,期望直接以管理员权限执行,而不需要再右击选择管理员权限,造成软件使用负担,给用户的使用带来不便。下面将会介绍如何使编译生成的exe直接点击就原创 2021-08-01 15:43:43 · 1129 阅读 · 0 评论 -
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 · 12582 阅读 · 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 · 3592 阅读 · 0 评论 -
Visual Studio如何实现.exe免安装免DLL运行[动态链接库--->>>静态链接库]
Visual Studio如何实现.exe免安装免DLL运行[动态链接库--->>>静态链接库]前言一. debug下的配置方法二. release下的配置方法前言目的:Visual Studio编译生成的.exe可执行文件,可以免安装免DLL在其他电脑直接运行。换句话说,将执行程序的动态链接库改成静态链接库。测试程序:测试程序分为 有MFC使用 和 无MFC使用。方法:就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库中的部分提取出来,链接到可执行文件中去,使可执原创 2021-05-04 14:50:56 · 3948 阅读 · 1 评论 -
[error]stack smashing detected
运行环境:程序是在Linux环境中的 qt 运行的。遇到过两种出错情况:一. 程序运行后中止,出现上述错误。二. 程序在当前Linux版本上编译后可运行,放到其它Linux版本上不能够运行,出现上述错误。简意就是,本Linux系统版本上编译的可执行程序只能在同Linux系统版本运行。**第一种情况:**出现stack smashing detected,即栈溢出,但不会定位到哪里出现溢出。1.原因:C语言比较“宽松、灵活,语法检查不严格”,在遇到数组越界、栈溢出等问题时编译时不会报出来,等到程序运行原创 2021-01-20 15:27:48 · 7110 阅读 · 0 评论 -
如何在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 · 6969 阅读 · 0 评论 -
如何把一个十六进制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 · 2292 阅读 · 0 评论 -
如何终止进程(结束main函数)?
标题 如何终止main函数C++中:1. return 1;2. exit(1);注:需要引用#include <stdlib.h>原创 2021-01-19 15:17:57 · 3108 阅读 · 0 评论