
C++
文章平均质量分 69
翼之痕
C++程序开发,对网络编程,和数据安全等也有兴趣
展开
-
qss 方式截取序列图
该序列图,是40x36的三张图片拼接而成。从左到右,分别是normal,hover,pressed三种状态。当用qt 写界面程序时,为了使资源目录不到处都是图标,将散的图片拼接成三种状态或四种状态的序列图,此时在项目中使用时,setStyleSheet 处理每个状态获取对应的图表方式如下: //后面四位数字表示截取图片对应的是上右下左,在序列图中,normal中图标在第一个,该图标到它的上边没有图标了,所以第一个数字表示到距离最上边是0,第二个表示右,第一图标到最右边的距离是连个图标的宽度...原创 2022-01-15 16:17:40 · 408 阅读 · 0 评论 -
获取系统版本信息
#include "stdafx.h"#include <iostream>#include <Windows.h>#include <stdlib.h>#include <string>#include <comdef.h>#include <Wbemidl.h>using namespace std;#pragma comment(lib, "wbemuuid.lib")std::string Wch...原创 2021-06-18 15:09:44 · 231 阅读 · 1 评论 -
绕过UAC 不弹窗启动程序的方法
https://baijiahao.baidu.com/s?id=1678518589760092233&wfr=spider&for=pc原创 2020-12-23 18:02:57 · 1705 阅读 · 1 评论 -
代码如何实现创建windows计划任务
下面给出一个网址,以便自己方便查找https://blog.youkuaiyun.com/atlandis_jl/article/details/12708839原创 2020-12-17 11:42:58 · 694 阅读 · 0 评论 -
Qt实现界面居中显示,以及顶层显示
///////////////////////////////////////////////////////////////// 屏幕中间显示 QDesktopWidget *pDeskWdg = QApplication::desktop(); QRect rctAvaild = pDeskWdg->availableGeometry(); this->move((rctAvaild.width() - this->width()) / 2, (rctAvail...原创 2020-10-29 15:12:19 · 923 阅读 · 0 评论 -
Qt ui_xxxxxx.h 找不到头文件
由于迁移项目,从VS高版本到低版本,环境发生变化导致编译不管,就重现创建了一个项目,就高版本项目的文件拷贝进新项目里,重新编译,发现找不到ui_xxxx.h头文件只需右键属性xxxx.ui,常规|项类型,修改为“自定义生成工具”,展开自定义生成工具,设置:命令行:"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h"说明:Uic%27ing %(Identity)...输出:\GeneratedFiles\ui_%(Fi..原创 2020-09-11 18:05:13 · 3721 阅读 · 0 评论 -
QWidget 添加边框阴影
示例代码:WindWMAPI.h#ifndef WINDWMAPI_H#define WINDWMAPI_H#include <windows.h>//********************************************窗口阴影类***************************************typedef struct _MARGINS{ int cxLeftWidth; // width of lef...原创 2020-09-08 09:39:45 · 1715 阅读 · 0 评论 -
Qt 当文本过长时,超过一定限制,右边以省略的符号显示
m_lbTaskName->setFixedWidth(width() / 2); QFontMetrics metrics(name); QString taskName = metrics.elidedText(QString::fromWCharArray((wchar_t*)m_taskBaseInfo.brszName), Qt::ElideRight, width() / 2 - 30); m_lbTaskName->setText(taskName)...原创 2020-09-07 19:18:13 · 1157 阅读 · 0 评论 -
QLabel 显示文本,当文本长度超过指定长度时右边省略显示
m_taskNameBarWdg //QLabel标签int showWidth = m_taskNameBarWdg->width() - 140; m_taskNameBarWdg->setTaskValueWidth(showWidth); QFontMetrics metrics(m_taskNameBarWdg->getTaskNameFont()); QString taskName = metrics.elidedText(QString::fr...原创 2020-07-17 15:48:11 · 1519 阅读 · 0 评论 -
编译链接原理
现在天天用VS做项目开发,其实从源代码到生成一个可执行文件,中间经历了许多步骤,往往我们容易忽略,因为VS IDE帮我们做了编译与链接两个阶段的工作,而编译与链接阶段的合称Build, 而这两个阶段最容易发生错误,所以就得了解它的原理,帮助我们改bug.为什么要把源文件生成可执行文件呢?因为机器只识别0/1代码,而源文件在磁盘上存储,要运行源文件就必须将源文件转化为机器识别的二进制文件,并将转化后的文件载入到内存中才能运行。程序的运行过程分为编译阶段与链接阶段,而编译阶段又分为预编译,编译,汇编。.原创 2020-07-14 00:14:02 · 191 阅读 · 0 评论 -
VS2013 遇到无法下断点,提示当前无法命中断点,还没有为该文档加载任何符号
按照网上的文档,依然无法解决:https://blog.youkuaiyun.com/tr1912/article/details/51111824从网上下载了一个Everything 搜索该函数依赖的库 XXXX.dll 和xxxx.lib,发现程序调了别处存放的一个lib,将多余的lib和dll删掉,VS设置对库依赖路径,重新编译,通过...原创 2020-06-04 11:08:40 · 518 阅读 · 0 评论 -
C++ 实现获取任意一年一个月中的天数
int GetDaysInEveryMonth(int y, int m){ int d; int day[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (2 == m) { d = (((0 == y % 4) && (0 != y % 100) || (0 == y % 400)) ? 29 : 28); } else { d = day[m - 1]; } return d;}.原创 2020-05-27 11:23:51 · 954 阅读 · 0 评论 -
delete与 delete []区别
delete只调用一次析构函数,delete[]会调用每一个成员的析构函数。在Effective c++中有更为详细的解释:当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用 operate delete释放内存。delete 与 new配套,delete[] 与 new[] 配套。MemTest *mTest1=new MemTest[10];MemTest ...原创 2020-05-08 00:08:48 · 1015 阅读 · 0 评论 -
new、delete、malloc、free关系
new,delete是c++的运算符。它们用于申请动态内存和释放内存,对象在创建时会自动执行构造函数,在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够将执行构造函数和析构函数的任务强行加给malloc/free,因此C++需要一个完成内存分配和和初始化工作的运算符new,以及完成内存清理与释放的操作符delete,注意new/delete...原创 2020-05-07 23:14:40 · 622 阅读 · 0 评论 -
QTreeWidget 实现自动加载目录以树形结构显示,带checkbox,且item,滚动条用qss美化
写这文章是为了对知识的总结与归纳,以便后面忘了好找,也方便初学者可以找到学习资料#include "TestWidget.h"TestWidget::TestWidget(QWidget *parent) : QMainWindow(parent), ui(new Ui::TestWidgetClass){ ui->setupUi(this); ui->...原创 2019-11-21 11:39:22 · 2334 阅读 · 1 评论 -
C++ 获取文件版本号的代码
// Test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #pragma comment(lib,"version.lib")using namespace std; string GetFileVersion(PCSTR filename原创 2018-01-26 15:15:58 · 3862 阅读 · 0 评论 -
C++ 获取System Boot Time代码
#include "stdafx.h"#include<stdio.h> #include<windows.h> #define NT_SUCCESS(x) ((x)>=0) #define SystemTimeInformation 3 typedef struct { LARGE_INTEGER li...原创 2018-07-23 10:13:51 · 1205 阅读 · 0 评论 -
C++ 实现判断插入USB的设备是U盘,移动硬盘,光驱
今天做项目,要求代码能区分出U盘,移动硬盘,光驱等。有时候我们在做设备监控的时候,要识别一些链接设备,在使用函数GetDriveType的时候,U盘可以返回DRIVE_REMOVABLE,而本地硬盘硬盘和移动硬盘DRIVE_FIXED,因此还需要进一步来识别。识别方法为判断设备的总线类型即可:需要用到的数据类型以及函数有://将所有的卷存储在buffer中,格式为:C:/NULLD:/NUL...原创 2019-05-22 10:26:43 · 7162 阅读 · 0 评论 -
C++ 实现获取系统名称
项目中需要用到操作系统名及版本信息:下面是用两种方法实现的一种是通过查询注册表:#include "stdafx.h"#include <Windows.h>#include <string>#include <stdio.h>#include <iostream>#include <strsafe.h>#i...原创 2019-05-23 11:42:15 · 1157 阅读 · 1 评论 -
关闭文件重定向
typedef BOOL (WINAPI * _tagWow64DisableWow64FsRedirection)(LPVOID *);typedef BOOL (WINAPI * _tagWow64RevertWow64FsRedirection)(LPVOID);PVOID g_OldValue ;BOOL g_bCloseWowRedirection;BOOL IsWow6...原创 2019-05-23 11:43:08 · 2729 阅读 · 0 评论 -
当vs2005番茄助手试用过期,并报错的解决方法
vs2005开发工具安装番茄助手破解版后,过一段时间小助手不可用了,退出程序后,再次登录弹出提示:The security key for this program currently stored on your system does not appear to be valid for this version of the program。在网上找到了解决方案,作为记录,以免再原创 2018-01-26 14:33:26 · 1410 阅读 · 0 评论