自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 资源 (1)
  • 收藏
  • 关注

原创 apt install 报无法修正错误

E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

2022-07-24 11:21:41 1807 1

原创 贪心算法笔记

思想贪心算法(Greedy Algorithm)通过一系列的局部最优决策,从而获得问题的全局最优解。贪心算法的最直接的特点——“贪婪”思路把求解的问题分成若干个子问题;对每个子问题求解,得到子问题的局部最优解;把子问题的解局部最优解合成原来求解问题的一个解。贪心算法在对问题求解时,不从整体最优上加以考虑,而是做出在当前看来最好的选择。贪心算法预设了一个前提,就是认为全局最优解可以由局部最优解推出。贪心算法将求解过程分成若干个步骤,每个步骤都应用最优原则选择,选取当前最优的

2022-05-03 10:50:11 903

原创 Qml 鼠标区域事件传递

像clicked, doubleClicked, pressAndHold这些称为composed events(组合事件),而press、release则称为basic events(基本事件)。组合事件由基本事件组成。正常点击事件顺序 : pressed->released->clicked 其中 clicked是组合事件。pressed等基本事件,只需要在处理程序中写上mouse.accepted=false就会传递下去,事件处理函数里 写 mouse.accepted = f

2022-03-11 11:09:48 1680

原创 qt使用矢量图字体ttf作为图标

TTF(TrueTypeFont)是Apple公司和Microsoft公司共同推出的字体文件格式,是最常用的一种字体文件表示方式。系统字符集不包含你要用的特殊字体。如甲骨文符号,一般在“系统盘\WINDOWS\Fonts”里,直接双击能查看是什么样的字体。Font Awesome我们以Font Awesome(完美的图标字体)为例,讲解如何在程序中使用字体库。Font Awesomebootcss-Font Awesome可以在上面的网站中查看关于Font Awesome的所有介绍-特

2022-01-22 23:23:06 1918

原创 了解单例模式

单例模式singleton单例和多线程,传统的单例模式实现:class Singleton{private: Singleton(){}public: static Singleton* instance() { if(_instance == 0) {//很巧两个线程同时进入该区域,就会创建2次堆对象,//并且第一次new的堆对象再也控制不住了,要对_instance变量加上互斥锁: _in...

2021-12-14 22:35:30 1201

原创 C++11异步编程

线程同步是线程间共享数据在访问时的同步。同步同步:在调用后没有得到结果,该调用就不返回。一旦调用返回,就意味得到了返回值。由调用者等待调用的结果。异步异步:调用后立即返回了,不等待返回结果。由被调用者在得到结果后,通知调用者(回调函数,等)处理这个调用。异步编程在线程库< thread >中没有获得线程执行结果的方法虽然也实现了获取异步任务执行结果的功能,但需要的全局变量较多,多线程间的耦合度较高,编写复杂程序时容易引入bug。有没有更好的方式实现异步编程呢?

2021-11-04 11:58:16 1628

原创 KCP网络传输协议

概念KCP - A Fast and Reliable ARQ Protocol,KCP 快速可靠网络传输协议KCP力求在保证可靠性的情况下提高传输速度。kcp采取一系列措施尽量提高网络传输速率,在网络实时性和可靠性要求比较高的场景下,可以考虑kcp协议代替tcp协议。KCP是一种快速可靠协议,KCP以比 TCP浪费10%-20%带宽的代价,换取了平均延迟降低 30%-40%的效果,且最大延迟降低三倍的传输效果。整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的

2021-10-24 13:43:39 3493

原创 VC调试程序不能打断点

这里把调试信息格式设置为无,就打不了断点了

2021-09-24 20:52:37 190

原创 Windows进程间同步方法使用Event

Event是windows操作系统的一种内核对象,它不但可以用于进程间同步,还可以用于线程间同步。这里介绍的是进程间同步的使用。在windows所提供的内核对象中,Event内核对象比其他(信号量,互斥量)简单的多,只有是否触发的属性下面是使用事件内核对象的所要使用的函数接口:(1)CreateEvent()HANDLE WINAPI CreateEvent( _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes, _In_ ...

2021-09-22 14:44:55 3317

原创 window的休眠、睡眠、快速启动

win10关机后,再次开机,任务管理器中记录的系统运行时间一直在累计是由于快速启动导致的GetTickCount64 会做GetTickCountGetTickCount是一种函数。GetTickCount返回(retrieve)从操作系统启动所经过(elapsed)的毫秒数,它的返回值是DWORD。GetTickcount函数:它返回从操作系统启动到当前所经过的毫秒数,常常用来判断某个方法执行的时间,其函数原型是DWORD GetTickCount(void),返回值以32位的双字类型DW

2021-09-19 23:06:16 3520

原创 Sqlite索引

简介索引(Index)有助于加快 SELECT 查询和 WHERE 子句,但它会减慢使用 UPDATE 和 INSERT 语句时的数据输入。索引可以创建或删除,但不会影响数据。索引是一种特殊的查找表,索引是一个指向表中数据的指针。用来加快数据检索。除了索引,对查询性能的影响因素还有很多,影响数据库操作的整体性能就需要考虑更多因素,这是一个很大的学问。聚集索引表中的行的物理顺序与键值的逻辑(索引)顺序相同。数据的物理顺序只能有一种,所以一张表只能有一个聚集索引。非聚集索引表中行...

2021-09-17 20:57:59 3765

原创 CreateMutex用法

CreateMutexCreateMutex()函数用来创建一个有名或无名的互斥量对象,其函数原型为: HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCTSTR lpName ); 参数lpMutexAttri...

2021-09-17 10:18:27 9627

原创 智能指针指向数组

如果shared_ptr不是指向一个简单的指针,而是指向一个数组:std::shared_ptr<int> p3(new int[12]);则在shared_ptr默认的析构函数中,shared_ptr还是会调用delete 函数来删除int数组,而正确的方式是使用 delete []这种情况下,可以定制析构函数(deleter),将其作为回调传递给shared_ptr的构造函数 。使用定制deleter创建sharedptr使用函数指针在shared_ptr的构...

2021-09-01 20:11:25 2361

原创 QT管理员权限下拖拽文件进入窗口

如果qt写的程序,需要拥有管理员权限,又要实现拖拽功能,这种情况该如何处理? ::RevokeDragDrop(GetHWnd()); BOOL b1 = ChangeWindowMessageFilterEx(GetHWnd(), WM_DROPFILES, MSGFLT_ALLOW, NULL); BOOL b2 = ChangeWindowMessageFilterEx(GetHWnd(), WM_COPYDATA, MSGFLT_ALLOW, NULL); B...

2021-08-29 15:01:56 2665 2

原创 获取进程的信息

使用 NtQueryInformationProcess 函数Retrieves information about the specified process.Windows NT/2000系统的NTDLL.DLL包含了许多未公开的API函数。NtQueryInformationProcess就是微软 NTDLL.DLL包含的未公开 的一个 API。NTDLL.DLL中有一个函数叫NtQueryInformationProcess,用它可以指定参数,获得指定结构体类型的进程信息,拷贝到...

2021-08-08 19:28:19 2560

原创 QScrollArea类 滚动区域

QScrollArea可以使用QScrollArea对象给widget窗口部件添加滚动条。QScrollArea类提供了一个可以滚动的窗口和两个滚动条。这比使用QScrollBar滚动功能要简单。就是调用QScrollArea对象的setWidget()方法,把需要滚动条的qwidget设置进来。如果这个窗口部件的父对象不是视口,QScrollArea会自动把这个窗口部件的父对象定义为该视口(可以通过QScrollArea::viewPort()来访问),并且让他成为视口的子对象。IconEdi

2021-07-09 22:07:10 849 1

原创 遍历文件夹下的文件名

int FindFiles(const QString& fileFullPath ,QStringList & listFullPath ){ { QFileInfo fileInfoFullPath(fileFullPath); if (!fileInfoFullPath.isDir()) { listFullPath.push_back(fileInfoFullPath.filePath()); ...

2021-07-08 10:18:11 435

原创 git rebase

作用git rebase用于把一个分支的修改合并到当前分支git rebase和git merge的区别是什么本地两个分支:一个分支 dev01 ,一个主分支 master现在开发分支 dev01要合并来自master 上的最新修改,可以有两种选择 merge 或rebase,两者的最后得到的结果是一样的,区别是 rebase 后两个分支合并为一个分支,dev01合并前所有的 commit (patch)都 消失了,log历史看起来像没有经过合并一样。而merge 还是...

2021-06-28 11:43:52 172

原创 windows操作系统的Event

创建事件:函数原型:HANDLECreateEvent(LPSECURITY_ATTRIBUTESlpEventAttributes, //SDBOOLbManualReset,//resettypeBOOLbInitialState,...

2021-06-21 20:54:04 1767

原创 线程不结束进程不退出

发现程序在退出后而聊天进程没有退出,等待了很长时间也没有退出。开发人员在调试的时候,已经在debug版本下重现了这个bug,跟踪代码出错部分的流程如下:发送WM_QUIT消息给一个工作线程让其退出;用WaitForSingleObject等待那个线程的句柄有信号;如果有信号,就直接CloseHandle掉这个线程句柄;如果超时没有信号,就直接用_endthreadex()杀死线程。开发人员跟踪了好多次发现消息发送过去后线程并没有退出,每次都要超时进入强杀流程,但强杀调用确没有杀死线程,从th

2021-06-18 23:14:21 858

原创 windows路径

windows路径可以简写?今天看到一个路径,E:\PROGRA~1\WINDOW~2\wmplayer.exe为什么会有“~”在里面,而不是完整的路径名?windows下面路径可以简写吗?原理是什么C:\DOCUME~1\ALLUSE~1\APPLIC~1\Tencent\QQDisk我教你怎么取,这是我取路径的delphi源代码.不知道你能不能看懂...如果会编程应该能看懂吧,不会也没关系路径自动折叠了。C:\Users\ADMINI~1\AppData\Local\Temp\{4C694~1

2021-06-08 18:34:22 1722

原创 递归调用栈溢出

估计代码规范中不允许递归调用,实际开发中应该尽量避免对递归的使用,究其原因主要是以下两点:1. 嵌套深度上会存在一定风险,递归层数过多,不断压栈,可能会引起栈溢出的问题;2. 代码可读性,不太容易被后面维护的人理解;但是,凡事总有例外。比如要有一种需求场景,需要遍历一个目录下的所有文件,包括其中子目录中的文件,然后将满足一定条件的文件筛选出来,你会发现,用递归去设计反而会比较简单。对于解决一些包含重复类似逻辑的问题,递归对于开发人员来说是一个反而比较清晰的选择。本文主要介绍,不

2021-06-08 18:22:01 11918 2

原创 std::bitset

类似于vector,bitset类是一种类模板;而与vector不一样的是bitset类型对象的区别仅在其长度而不在其类型。在定义bitset时,要明确bitset含有多少位,须在尖括号内给出它的长度值:bitset<32> bitvec; //32位,全为0。 给出的长度值必须是常量表达式。正如这里给出的,长度值必须定义为整型字面值常量或是已用常量值初始化的整数类型的const对象。这条语句把bitvec定义为含有32个位的bitset对象。和vector的元素一样,bitset中的位是没有命

2021-06-04 15:36:25 681

原创 QTableView与model的使用

QStringList headerList; headerList << __IDS_AVRESTORE_NAME << __IDS_AVRESTORE_TIME << __IDS_AVRESTORE_TYPE << __IDS_AVRESTORE_OPERATE; m_viewModel->setHorizontalHeader(headerList); ui.tableView->setModel(m_view...

2021-05-28 22:21:29 4991 1

原创 错误    MSB4175   

严重性 代码 说明 项目 文件 行 禁止显示状态错误 MSB4175 未能从程序集“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Build.Tasks.Core.dll”加载任务工厂“CodeTaskFactory”。对路径“C:\Users\panjun\AppData\Local\Temp\3yxrx2lo\3yxr...

2021-05-15 20:27:06 1279

原创 C++的字符串拷贝函数

wcscpy_s(pValue, *pBufLen, strValue.c_str());memcpy_s(pValue, *pBufLen, strValue.c_str(), nLen);

2021-05-13 12:18:37 2745

原创 ++i和i++

++i和i++在效率上有差别。概念上来说,i++是先将i返回,再把i自增1;而++i是把i自增1,再将i返回。能混用的情况就是单纯地想让i自增1。对于内置类型的整型int来说,编译器都会直接编译出inc之类的指令,++i和i++没有差别;但对于自定义类型来说,++i和i++会调用两个不同的operator++重载函数,函数签名分别是:T& T::operator++()和 T T::operator++(int)。++i直接操作原对象,然后返回其引用;i++会先拷贝一个新的对象tmp

2021-05-11 21:51:02 2399 1

原创 windows安全中心接口

先说一个服务服务名称:wscsvc显示名称:Security CenterWSCSVC(Windows 安全中心)服务,监视并报告计算机上的安全健康设置。健康设置健康设置包括防火墙的打开和关闭、防病毒的(打开/关闭/过期)设置、反间谍软件(打开/关闭/过期)的设置、Windows 更新(自动/手动下载并安装更新)、用户帐户控制(打开/关闭)以及 Internet 设置(推荐/不推荐)。该服务为独立软件供应商提供 COM API 以便向安全中心服务,注册并记录其产品的状态。安全和维护 U

2021-04-30 21:42:48 2056

原创 error MSB4018: “VCMessage“任务意外失败.

error MSB4018: "VCMessage"任务意外失败.在用VS2019Community版本创建一个新项目时,提示这个错误,竟然从没见过,的确是因为在VS2019的这个版本上,新建项目没有自动勾选平台工具集,我们只需要在项目属性里勾选2019 v142即可...

2021-04-21 13:42:26 4572 3

原创 error C2872:“XXX”:不明确的符号

error C2872: “byte”: 不明确的符号message : 可能是“unsigned char byte”message : 或 “std::byte”windows下c++编译出现错误:error C2872: ‘byte’: ambiguous symbol原因是 c++17引入了类型 std::byte,与原来old的C++定义的unsigned char byte 重名冲突。std::byte,std::array ,std::size如果代码中使用了us...

2021-04-16 16:42:56 13924 7

原创 PE文件资源表

这里的RVA我们可以定位到资源表的位置资源定义Windows 将程序的各种界面定义为资源,包括加速键(Accelerator)、位图(Bitmap)、光标(Cursor)、对话框(Dialog Box)、图标(Icon)、菜单(Menu)、串表(String Table)、工具栏(Toolbar)和版本信息(Version Information)等。资源有很多种类型,每种类型的资源中可能存在多个资源项,这些资源项,用不同的ID 或名称来区分。但是,要将这么多种类型的不同ID ...

2021-04-07 10:54:14 549

原创 虚拟机安装win7需要注意的问题

虚拟机内部环境: Windows 71、安装VMware15,毕竟已经不是几年前了,VMware也有更新了,选择用VMware15与时俱进。2、选择win7的安装镜像,不要选择ghost的iso,而要选择原版的iso,不然很可能在VMware里启动虚拟机的dvd里,找不到启动盘,在网络上找到原版安装win7、windows_7_ultimate_x64_2021.iso。这个里面也是包含了杀毒软件,播放器、浏览器等的安装盘,我到手就先是卸载了一通不用的软件。3、安装虚拟机后,就是要安装VMwa.

2021-04-03 16:13:28 1640

原创 Git 使用 stash暂存代码

如果在修改的时候,其他人往远端库提交了代码,现在要先pull代码再提交代码,stash

2021-03-31 17:53:44 5363

原创 windows开机自启动目录

从win7开始,Documents and Settings就不可用了,而是由用户(Users)文件夹代替了,微软停用了Documents and Settings文件夹,改为了【用户】(users)C:\Users\Administrator\AppData\Local\Temp 和C:\Documents and Settings\Administrator\Local Settings\Temp是一个文件夹。Win10 自启动的目录C:\Users\panjun\AppData\R.

2021-03-25 22:36:17 4703 2

原创 Com组件

COM组件,就是模块化对象的思想,只在windows上用。首先它它是一个 二进制对象,可以是进程内的DLL,也可以是exe,COM编程需要满足这套规范,COM要有一个 GUID标识;为了说明我是放在系统的什么位置,别人用我的时候,要初始化一下,然后在注册表里填写好我自己这个COM的所在的路径,Linux/MacOS上是没有注册表的,所以COM就只在windows上存在了,但是对象实例模块化的思想,其它的平台都是可以借鉴的。Windows一直遵循开发工程师只要拿着微软提供的API手册或者文档,让用户主

2021-03-15 02:14:50 236

原创 Visual Studio 2019 语言的符合模式

visual studio项目属性里,语言的“符合模式”是什么意思?Visual Studio 2019 RTW(版本 16.0)中的符合性改进Visual Studio 2019 RTW 包含 Microsoft C++ 编译器 (MSVC) 的以下符合性改进、bug 修复和行为变更注意: C++20 功能将在 /std:c++latest 模式下提供,直到编译器和 IntelliSense 的 C++20 实现完成。 届时,将引入 /std:c++20 编译器模式。符合性改进介绍,请看链接:

2021-03-06 11:15:11 5490 4

原创 git操作笔记

下载代码打开文件夹,右键打开gitbash ,输入命令,下载代码git clone https://code.com.cn/imc//Win_C.git$ git --helpusage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--...

2021-02-19 17:51:26 687

原创 链表问题

单向链表的操作创建链表,逆序链表,合并链表// ConsoleApp.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdlib.h>typedef struct Node{ int m_data; Node* m_pNext; Node(int data, Node* pNext) { this->m_data = data; this->m_pNext = pNext; .

2021-02-16 22:47:41 98 1

原创 bat 的一些操作

把d:\test\test.txt这个文件复制到D盘根目录下,那么,使用 copy d:\test\test.txt d:\ 就可以轻易办到。copy /y D:\test\test.txt d:\copy /y “D:\test\user 01\test.txt” d:\files如果要复制的路径带有空格、&等特殊符号的时候,请使用引号把这些特殊字符括起来参数 /y (相当于自动选择了Yes选项)...

2021-02-04 15:08:21 922

原创 http上传文件

http协议是建立在tcp、ip协议的应用层规范。http协议规范把http请求分为3个部分:状态行,请求头,请求体。所有的方法、实现都是围绕 “如何运用和组织这三部分” 来完成的。了解http请求的组成部分后,就可以应变任何实际工作中所遇到的需求和问题了。http里没有专门用于文件上传的请求方式,文件上传请求是在post请求基础之上定义出来的一种方式。Content-Type在发送到服务器时候内容编码方式,它有如下的三个值。①application/x-www-form-urlen...

2021-01-19 12:44:25 17285 1

SpinLock.cpp

为了效率,不使用C++语言提供的Mutex互斥量,而使用不使用线程被阻塞的方式,即所谓的自旋锁,这是自旋锁的一种实现方式,使用C++11的原子变量,不用锁机制,实现的一种无锁的自旋锁

2020-05-26

空空如也

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

TA关注的人

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