C++&QT
文章平均质量分 53
qt相关
闫有尽意无琼
Qt开发者,爱科技,爱阅读,爱生活。
展开
-
vs、utf-8、utf-8bom乱码分析及实测
本篇讨论的重点是采用什么编码格式对输出的格式要清楚否则越转越乱。1、微软还是那个bom派,UTF-8 bom支持了两种输出情况, 默认支持无需宏但输出解析为gb2312,另一种加宏或者/utf-8选项都会解析为标准utf-8;2、标准utf-8项目,也就是不带bom的utf-8,别挣扎了就一种情况,编译选项/utf-8加上,输出就是utf-8,仅有此种方式靠谱统一;原创 2024-06-12 16:06:46 · 1783 阅读 · 2 评论 -
Visual Studio和BOM历史渊源
今天看文档无意间碰到了微软对编码格式解释,如下链接:下图为节选,微软表达的意思很明确UTF-8确实已经成为Llinux乃至行业主流,但windows历史上默认的文件编码格式都是是 Windows-1252,可以等同理解为即 ANSI 编码,这一点已经不能改变,这就是为什么vs、命令行和windows记事本等默认都是本地化格式改变GB2312。原创 2024-06-06 18:53:36 · 1213 阅读 · 0 评论 -
gmssl vs2010编译
gmssl vs2010编译图文流程原创 2024-05-28 11:24:00 · 912 阅读 · 0 评论 -
C++之nothrow
nothrow是 C++ 中的一个关键字,用于改变 new操作符的行为,使其在内存分配失败时不抛出异常,而是安静地返回一个空指针(nullptr这对于那些不希望或不能处理异常的代码片段特别有用。要使用 nothrow,你需要包含< new >头文件,并在 new表达式中传入 std::nothrow。原创 2024-05-07 15:42:05 · 331 阅读 · 0 评论 -
QService 服务 指令引用的“0x00000000”内存。该内存不能为“read“
类在Qt框架中是设计用来简化Windows服务或类Unix守护进程创建的。这个类提供了一组方法和属性,使得开发者能够专注于服务逻辑,而不必担心操作系统层面的细节。下面是一些QtServiceBase。原创 2024-04-24 17:53:34 · 469 阅读 · 0 评论 -
cryptopp Base64Encoder \n问题
调用库函数Base64Encoder进行base64加密后确认多出来了\n。的问题, 由于base64一行不能超过76字符, 超过就会添加回车。(在Windows中是 \r\n , 在Linux中是 \n )方法一、给定参数使其不要加入换行符。方法二、剔除\r和\n。原创 2023-11-14 10:05:58 · 407 阅读 · 0 评论 -
Qt6.5安装教程——国内源
Qt6.5安装教程 国内源 开始非商业授权下,不再提供离线安装方式的exe,但源码安装费时费力,所以推荐安装方式已经为在线组件安装方式,包括vs2022、Qt在线安装工具已经成为开发工具新的安装趋势。NO。KDE 社区和 Qt 公司之间曾经达成过一项协议,其中规定:如果 Qt 公司在开源许可证有效的情况下停止开发自由软件版本的 Qt(Qt Free Edition),那么基金会有权以 BSD 许可证或其他开源许可证发布 Qt。当然这项协议最早为了防止qt公司倒闭,KDE可以继续延续不至于夭折。原创 2023-08-30 17:52:28 · 4279 阅读 · 4 评论 -
Qt5升级到Qt6分步迁移教程
在我们的例子中,将应用程序移植到Qt 5的最新版本,然后切换到Qt 6要容易得多。它提供了Qt 6中消失的一些类,例如QRegExp和QStringRef,但由于这一点,它仍然可以在Qt 6应用程序中使用。它在Qt 6中不再可用,但是如果您的应用程序使用了很多效果,则很难在没有任何回归的情况下轻松迁移。Qt 6需要C++17或更高版本的编译器(例如,对于Windows – MinGW 8.1.0或msvc 2019),因此如果您使用的是旧版本,则是时候升级了。因此,如您所见,您的操作取决于需要替换的模块。原创 2023-08-24 17:37:46 · 3157 阅读 · 0 评论 -
vs2022最近列表不显示问题解决方案
vs任务栏图标,鼠标右键正常情况下如下图,有一堆最近打开过的项目列表,方便切换。3、全部清除,关闭vs,再打开项目就好了。1、确保这个按钮必须打开;原创 2023-06-26 12:00:16 · 1607 阅读 · 0 评论 -
vs2022 xp支持情况测试
4.2 如若用户不方便安装该运行库,那么就需要解决dll依赖问题,需要在已经安装的visual c++ 2017 x86的机器里和不安装的进行比对,然后提取,提取后,则不需要安装即可运行;4.1最简单的办法时安装visual c++ 2017 x86 运行库,如下图大约14兆,安装完后,exe则不需要任何依赖可直接运行(1、 若要vs2022支持xp,需要安装xp支持模块,如下图,单个组价,勾选xp支持,右边自动打勾,直接安装即可;3.1、C/C++,代码生成,运行库,改为/MT。原创 2023-04-18 15:30:05 · 2547 阅读 · 0 评论 -
vscode报错“Unable to start debugging”“GDB Failed with message:”
1、正常打开文件夹,新建一个cpp;2、配置编译器,ctrl shift p,C/C++,edit configration ui3、运行,启动调试,弹出任务,默认选择第一个,直接报错“Unable to start debugging”“GDB Failed with message:”原创 2022-10-31 11:01:13 · 16224 阅读 · 5 评论 -
vscode windows mingw配置
5.3 如果下拉没有mingw,则点添加配置也就是编译器名称标记便于选择,第二步输入gcc.exe或者g++.exe路径,第三步选择架构;5.1 ctrl+shift+p调出命令行面板,然后输入c/c++,选择edit configurations(UI)5.4 关闭,此时,多了一个.vscode配置文件夹,c_cpp_properties.json为配置文件。5.2 如果安装过vs会自动识别出msvc编译器,但mingw不能识别,我们手动添加;5.5 先点运行,调试,选择C++(GDB/LLDB)原创 2022-10-30 11:20:44 · 4424 阅读 · 0 评论 -
关于VC++运行库报错
开发, C 和C++工开发的应用程序都需要visual c++组件库不然就报错无法运行,而且版本直接有对应关系,基本上微软建议是全装从visual c++ 2008到visual c++ 2022,合计约5个大版本Visual C++2008,Visual C++2010,Visual C++2012,Visual C++2013,Visual C++2015-2022(15,17,19,22合并位2015-2022一个了),每个都对应32位和64位,大版本上下不兼容相互独立的。原创 2022-09-16 15:32:00 · 5315 阅读 · 0 评论 -
ITLV—灵活性高的协议格式
很多时候用的是TLV(Tag、Length、Value)格式数据。实际中,可以根据实际需要进行修改,稍微改一下,实际上也是大同小异的。ITLV各字段的含义:I:ID或Index,用于区分是什么数据。T:Type,代表数据类型,如int、float等。L:Length,表示数据的长度(Value的长度)。V:Value,表示实际的数据。其中,I、T、L是固定长度的,在制定具体的数据协议之前,需要评估好当前项目的数据会有多少、数据的最大长度是多少,考虑好后续数据扩展也可以保证协议通用。...转载 2022-08-29 17:45:28 · 979 阅读 · 0 评论 -
qt报错Project ERROR: Cannot run compiler ‘cl‘. Output:
这个问题主要原因是,qt creator找不到正确的编译器所致,网上很多方案是上手改环境变量,我是反对这样轻易对系统环境变量进行增加或者修改;如下图这里有一堆,qt默认不知道选择哪一个,我的经验一般你应该选择“Microsoft Visual C++”开头版本最新的;1、不用msvc编译器,而选用mingw编译器,如下图;...原创 2022-08-03 14:05:52 · 5634 阅读 · 3 评论 -
C++/CLI打通C++与C#
C++/CLI打通C++与C#原创 2022-06-16 17:22:44 · 1477 阅读 · 0 评论 -
vs2022 无法打开包括文件: “crtdbg.h” no such file or directory
原创 2021-12-27 12:14:16 · 16910 阅读 · 23 评论 -
Qt QSetting *.ini.lock
sync():如果存在相同的key,现有的值将被新值覆盖。为了提高效率,这些变化可能不会被立即保存到永久存储(可以随时调用sync()来提交更改)。void WriteInit(QString key, QString value){ QString path = document_path+"/skylark/AuConfig.ini"; QSettings *config = new QSettings(path, QSettings::IniFormat); //将信息写入配置文件 c原创 2021-11-03 11:42:55 · 507 阅读 · 0 评论 -
QString之arg用法
arg比c语言的printf封装更加高级和易用。主要是3类:1、arg(str1, str2, str3)2、arg(str1).arg(str2).arg(str3)3、arg(int,int,int)一、arg(str1, str2, str3)用后面依次替换前面,后面的类型确保都是Qstring即可。QString strs=QString("%1 %2 %3").arg("a","b","c");//输出a b cQString strs=QString("%1...原创 2021-10-25 10:22:52 · 18960 阅读 · 0 评论 -
centos7下qt creator python配置
1、新建项目2、报错解决,需要安装python3.8.10及其以上安装python3.8.10及其以上2.1、下载源码包;https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz2.2、安装编译python3的依赖,命令如下:yum install -y gcc openssl-devel bzip2-devel libffi-devel2.3、 解压并安装;# 解压压缩sudo tar -zxvf原创 2021-08-21 18:30:25 · 552 阅读 · 0 评论 -
Ubuntu 16.04 QT ‘usr/bin/ld cannot find -IGL‘
sudo apt-get install mesa-common-devsudo apt-get install libglu1-mesa-dev原创 2021-08-21 15:28:16 · 215 阅读 · 0 评论 -
QT creator报错“fatal error: ‘stddef.h‘ file not found”
报错“unknow type name “MainWindow””报错“variable has incomplete type ‘QApplication’””报错“cstddef:50:10: fatal error: 'stddef.h' file not found”原因:ClangCodeModel出错,libclang-common版本不匹配,导致误报各种头文件不存在解决方法两种:方法一:关闭该功能,则需要牺牲智能提示未前提;帮助->C++->Cla原创 2021-08-20 19:31:21 · 5616 阅读 · 4 评论 -
Ubuntu下安装vscode c++环境
1、vscode离线包Visual Studio Code - Code Editing. Redefined2、准备好离线的插件,vscode支持语言是以扩展形式;Extensions for Visual Studio family of products | Visual Studio Marketplace该网站下,需要准备两个离线基础插件,chinese语言包和c/c++支持,都是排名第一和第二3、导入到Ubuntu系统里,如下图:插件数量取决于实际情况,语言包必选原创 2021-08-02 16:40:17 · 303 阅读 · 0 评论 -
QJson基础
转载自爱编程的大丙从 Qt 5.0 开始提供了对 Json 的支持,我们可以直接使用 Qt 提供的 Json 类进行数据的组织和解析。相关的类常用的主要有四个,具体如下:Json 类 介绍 QJsonDocument 它封装了一个完整的 JSON 文档,并且可以从 UTF-8 编码的基于文本的表示以及 Qt 自己的二进制格式读取和写入该文档。 QJsonArray JSON 数组是一个值列表。可以通过从数组中插入和删除 QJsonValue 来操作该列表。...转载 2021-07-30 16:30:34 · 1077 阅读 · 0 评论 -
QString常用函数速查
append(const QString &str) //追加字符串 at(int position) //返回索引所在字符 back() //返回最后一个字符 begin() //返回头部第一个字符 capacity() //返回可用的内存大小 chop(int n) ...原创 2021-05-16 14:40:30 · 2056 阅读 · 0 评论 -
QSettings allKeys读取为空分析
QSettings自有的函数allKeys( )读取配置文件一直为空,怎么也找不到原因,换思路新建ini文件可以读取到,然后去看目录,新建的ini文件,如下图main和debug目录下均没有!!!往上,发现,竟然默认在debug的上一级目录!!!分析可能与MingW编译器有关系,vs+qt默认是可执行文件目录。...原创 2021-05-12 10:33:08 · 1000 阅读 · 0 评论 -
qt 报错pcap.h头文件不存在
1、首先这个报错是因为没有安装libcap造成;centos下比较简单:下载地址:http://www.tcpdump.org/ 下载版本:wget -chttp://www.tcpdump.org/release/libpcap-1.5.3.tar.gz 解压软件包:tarzxflibpcap-1.0.0.tar.gz进入解压后的目录,输入命令行: 命令如下: ./configure make make install备注:如果./con...原创 2021-03-08 10:01:17 · 2001 阅读 · 0 评论 -
ubuntu QT 编译报错 -1: error: cannot find -lGL问题的解决方法
1、查询库位置locate libGL2、创建软链接:注意-s后的路径取决于第一个命令查出来的路径。/usr/lib/libGL.so 保持不变sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so原创 2021-03-08 09:50:07 · 1001 阅读 · 0 评论 -
Ubuntu Qt编译报错 stdlib.h: No such file or directory
如图,需要将第19行,INCLUDEPATH += /usr/include,注释掉,原因是分析,在ubuntu的CSTDLIB中,使用的是#include_next “stdlib.h”, 自行增加/usr/include, 把include_next的顺序打乱了,造成编译错误。但是centos下需要这行包含不然无法编译通过。...原创 2021-03-08 09:23:47 · 3087 阅读 · 2 评论 -
Qt Creator linux下使用SVN
1、linux下QT自带了svn组件也设置,只需要填写账号和密码即可,如下图:2、新建项目的时候,新建导入项目:3、填入svn地址,及目录,得保证,导入进来的项目,当前文件里,有.pro文件,而不是递归目录,是项目目录;此时会报错,https的地址,点下一步会报错,服务器证书错误!猜测http不会报错!解决方法:命令行输入,svnls地址,然后按提示输入svn密码,最后输入yes。4、直接点下一步,即可导入成功。linux下svn客户端,图形化界面...原创 2021-02-25 17:58:08 · 1142 阅读 · 0 评论 -
关于windows注册表重定向和虚拟化分析
转载源地址https://www.cnblogs.com/xenophon/p/4956218.html在 64 位系统上,32 位程序读写部分注册表路径时会被系统重定向,这有些类似于读写 System32 文件夹的处理方式。比如,写入 HKLM\Software\KeyName,却发现实际写入到 HKLM\Software\Wow6432Node\KeyName,读取亦是如此。现实中发现,很多的程序员在检测一个程序在 HKLM 键下面的注册表信息,通常会针对 HKLM\Software 和 HKLM.转载 2021-02-05 09:46:14 · 625 阅读 · 0 评论 -
QString string char*互转
1、QString转char *//QString转char*QString qStr = "让世界爱上中国造";QByteArray qByteArray = qStr.toUtf8();char* cStr = qByteArray.data();2、char*转QString//char*转QStringchar *pCStr ="中国";QString qStr(pCStr);3、QString转string//qstring转strin...原创 2021-02-02 09:15:22 · 214 阅读 · 0 评论 -
由MAC地址在18字节及6字节之间的转换引发越界问题讨论
MAC地址在18字节及6字节之间的转换#define unsigned int u32#define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x"#define MACSTOL(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]#define MACLTOS(a) (u32 *)&(a)[0], (u32 *)&(a)[1], (u32 *)&(a)[2], (u32 *)&(a)原创 2021-01-28 09:21:58 · 403 阅读 · 2 评论 -
QT mingw 编译Crypto++ 5.6.4
1、下载Crypto++v5.6.4,并解压;https://codeload.github.com/weidai11/cryptopp/zip/CRYPTOPP_5_6_42、新建文件cryptopp564 ,把解压后的文件全部复制进去,不要子文件夹路径;3、随便复制一个其它项目的.pro到当前目录下,粘贴后,将这个文件重命名为CryptoPPLib.pro编辑器打开,内容清空,粘贴以下内容;CryptoPPLib.pro文件内容如下:QT -= core ...原创 2021-01-14 14:42:15 · 1046 阅读 · 0 评论 -
PKCS5Padding与PKCS7Padding的区别
关于PKCS5Padding与PKCS7Padding的区别跨语言平台的加密解密算法的交互使用,特别是一些标准的加解密算法,都设计到数据块Block与填充算法的问题,例如C#与JAVA中的常见的填充算法如下:.Net中的填充算法:成员名称 说明 ANSIX923 ANSIX923 填充字符串由一个字节序列组成,此字节序列的最后一个字节填充字节序列的长度,其余字节均填充数字零。 下面的示例演示此模式的工作原理。假定块长度为 8,数据长度为 9,则填充用八...原创 2020-12-20 15:15:22 · 3462 阅读 · 0 评论 -
Crypto++ base64、base32、MD5、SHA1、SHA256、CRC
#include <base32.h>#include <base64.h>#include <filters.h>#pragma comment(lib, "cryptlib.lib")using namespace std;using namespace CryptoPP;string src = "test";string dst;StringSource(src, true, new Base32Encoder(new StringSink(ds.原创 2020-12-20 14:24:41 · 933 阅读 · 0 评论 -
关于QWidget *parent=0的理解
QWidget:Widget 是使用Qt编写的图形用户界面(GUI)应用程序的基本生成块。每个GUI组件,如按钮、标签或文本编辑器,都是一个Widget,并可以放置在现有的用户界面中或作为单独的窗口显示。每种类型的组件都是由QWidget 的特殊子类提供的,而QWidget又是QObject的子类。QWidget是所有Qt GUI界面类的基类,它接收鼠标、键盘及其他窗口事件,并在显示器上绘制自己。通过传入QWidget 构造函数的参数(或者调用QWidget:setWindowFlags(原创 2020-12-17 14:26:22 · 7707 阅读 · 0 评论 -
Qt双击桌面快捷方式激活并使程序窗口置于最前端
方法二转载:https://blog.csdn.net/winstonyi/article/details/108737600qt在桌面应用程序中,会存在一个问题,官方示例中也无提及,桌面快捷方式,唤醒已经最小化的窗口,因为大部分情况下,不可能让窗口一直保持在前台,最小化后,在需要时有必须让其快速显示,windows托盘图标在某些情况下,受图标缓冲影响,就是不显示!最直接和可靠的渠道就是,桌面快捷方式和开始菜单的快捷方式,也比较符合大部分普通用户习惯!方法一:起初遇到该问题,我们测试..原创 2020-12-17 11:41:38 · 1945 阅读 · 0 评论 -
vs与qt版本对应关系
微软 Visual C++ Redistributable Package 会安装 Visual C++ 库的 Runtime (运行时) 组件,使用户能在未安装 MicrosoftVisualStudio 2005-2017 的 PC 计算机上运行以 Visual C++ 环境编译的 APP 应用,不管是采用 C++ 还是 VC++ 编写。微软 Visual C++ Redistributable 是运行很多基于 Windows OS 平台的 APP 应用,尤其是游戏或应用所必须的 Microsoft转载 2020-12-05 19:40:11 · 14576 阅读 · 1 评论 -
802.1x认证EAP包结构
当用户需要访问外部网络时打开802.1X客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求。此时,客户端程序将向设备端发出认证请求报文(EAPoL-Start),开始启动一次认证过程。 设备端收到认证请求报文后,将发出一个Identity类型的请求报文(EAP-Request/Identity)要求用户的客户端程序发送输入的用户名。 客户端程序响应设备端发出的请求,将用户名信息通过Identity类型的响应报文(EAP-Response/Identity)发送给设备端。 设备端将客户端发..原创 2020-12-04 15:33:47 · 1263 阅读 · 0 评论