自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Windows中winsock.h和winsock2.h

在同一个项目中最好不要同时使用winsock.h和winsock2.h因为当winsock.h在winsock2.h前包含时,编译会报错,因为两个文件不能共存的很好。Socket中winsock.h和winsock2.h的不同

2021-09-17 16:56:53 1367 1

原创 《Windows核心编程》内核对象

一、何为内核对象内核对象是用于管理进程、线程和文件等诸多种类大量资源的数据结构。常见的内核对象有:事件对象、文件对象、互斥量对象、进程对象、线程对象、线程池工厂对象、管道对象、信号量对象等。每个内核对象都只是一个内存块(这个内存块是一个数据结构,其成员维护着与对象相关的信息),它由操作系统内核分配,并只能由操作系统内核访问。二、应用程序如何操作内核对象内核对象的数据结构只能由操作系统内核访问,应用程序不能在内存中定位这些数据结构并直接更改其内容。只有通过调用Windows API创建内核对

2021-08-08 19:17:44 188

原创 c++读取文件内容的基本方法

读写文件需要用到fstream类,详述可查阅《C++ Primer》第八章。下面给出例子:【读取文件内容】【代码】#include<iostream>#include<fstream>#include<string>#include<vector>using namespace std;int main(int argc, char**argv){ fstream myfile; myfile.open("./test.txt", i

2021-07-15 10:10:54 4535

原创 《c++primer》第九章·顺序容器

9.1 顺序容器概述标准库中的顺序容器在以下方面都有不同的性能折中:(P292)向容器添加或从容器中删除元素的代价;非顺序访问容器中元素的代价。(一)确定使用哪种顺序容器1、选择容器的基本原则:(P293)除非你有很好的理由选择其他容器,否则应使用vector。如果你的程序有很多小的元素,且空间的额外开销很重要,则不要使用list或forward_list。如果程序要求随机访问元素,应使用vector或deque。如果程序要求在容器的中间插入或删除元素,应使用list或forwar

2021-06-28 16:10:37 188

原创 WIN10系统让服务程序自启动

最近工作中遇到一个问题,觉得挺有意思,在此记录一下。问题背景UI界面即是客户端程序是独立的一台主机,而服务器(有加密狗)在另一台主机。经验证,客户端通过远程桌面控制来启动服务器程序时,加密狗功能失效,而在服务器主机启动服务程序时,加密狗功能正常。可以推断,加密狗程序标识到了远程桌面控制启动属于非法操作所以不生效。WIN10系统让服务程序自启动让服务程序在服务器主机开机后自动启动是一种节约成本的解决方法(省去给服务器配显示器、鼠标、键盘的成本)。下面利用计划任务自启动来实现:1、进入任何计划程序

2021-05-07 12:14:27 2741

转载 C++ 单例模式总结与剖析

转载自C++ 单例模式总结与剖析C++ 单例模式总结与剖析单例可能是最常用的简单的一种设计模式,实现方法多样,根据不同的需求有不同的写法; 同时单例也有其局限性,因此有很多人是反对使用单例的。本文对C++ 单例的常见写法进行了一个总结, 包括懒汉式、线程安全、单例模板等; 按照从简单到复杂,最终回归简单的的方式循序渐进地介绍,并且对各种实现方法的局限进行了简单的阐述,大量用到了C++ 11的特性如智能指针, magic static,线程锁; 从头到尾理解下来,对于学习和巩固C++语言特性还是很有帮助的

2021-04-30 09:52:40 143

原创 《c++primer》第八章·IO库·知识点总结

8.1 IO类(P278)标准库定义的一些IO类型,分别定义在三个独立的头文件中:iostream定义了读写流的基本类型;fstream定义了读写命名文件的类型;sstream定义了读写内存string对象的类型。(一) IO对象无拷贝或赋值(P279)(二) 条件状态1、确定一个流对象的状态的最简单的方法是将它当作一个条件来使用(P280):while(cin >> word) //ok:读操作成功(三) 管理输出缓冲1、每个输出流都管理一个缓冲区,用来保存程序

2021-04-14 22:52:49 134

原创 《c++primer》第七章 ·类·知识点总结

1、类的基本思想是数据抽象和封装。2、成员函数的声明必须在类的内部,它的定义则既可以在类的内部也可以在类的外部。在类内部定义的成员函数是隐式的inline函数(即类内定义的成员函数被默认为内联函数)3、非成员函数的定义和声明都在类的外部。...

2021-04-08 16:17:52 218

原创 Qt实践之QPushButton按钮聚焦与键盘误触问题

问题描述:最近用户反映一个问题,就是机器运行中途会立即停止。我们反复查了日志,发现只可能是用户点击了“立即停止”按钮,而用户一口咬定他没有点击该按钮。原因分析:经过我们的深入了解,发现用户很喜欢用键盘的Tab按钮和空格按钮。而ui文件中的QPushButton默认是强聚焦的:用户使用键盘上的Tab按键,把焦点聚集到“立即停止”按钮时,再按下控格就相当于点击了“立即停止”。解决方法:为避免误触问题再次发生,我们把按钮的focusPolicy熟悉,设置为NoFocus,即调用QPushButt

2021-03-26 11:13:57 1100

原创 Qt实践之给应用程序设置logo

QIconSetting the Application Icon

2021-03-23 16:26:39 4503

原创 Qt实践之qInstallMessageHandler输出日志文件

对于大型项目来说,一个包含了程序debug信息、告警、关键和致命消息的日志文件,对程序后期的跟踪维护尤为重要。Qt给我们提供了一个这样的接口,可让我们生成日志文件: QtMessageHandler qInstallMessageHandler(QtMessageHandler handler)这里的handler是需要开发人员预先设计好的消息管理函数,该函数用于打印Qt程序运行期间输出的各种消息,包含调试消息、告警内容和关键错误等。这里的QtMessageHandler是指向消息管理函数的指针。

2021-03-02 14:48:48 559 1

原创 Qt基础之共享内存QSharedMemory--让应用程序只有一个运行实例

让应用程序只有一个运行实例QSharedMemory除了可以完成进程间通信,还可以实现应用程序单例化。首先,看看QSharedMemory的几个重要函数:1、QSharedMemory(const QString &key, QObject *parent = Q_NULLPTR)构造函数该构造函数为给定的parent指针构造共享内存对象,并以key作为该对象的键值。2、bool create(int size, AccessMode mode = ReadWrite) 函数该函数为标

2021-02-22 22:27:01 1601

原创 读写文件之句柄泄露隐患

读写文件之句柄泄露隐患编程时,我们往往会遇到打开文件忘了关,导致程序存在安全隐患等问题。比如://读取frontPrvFile文件 QFile originFrontPrvFile(frontPrvFile); if(!originFrontPrvFile.open(QIODevice::ReadOnly|QIODevice::Text)) { qDebug()<<"open origin frontPrvFile:"<<frontPrv

2021-01-26 15:21:44 311

原创 《Qt设计DLL》之使用Q_D指针指向私有成员和Q_Q指针指向公开成员

使用Q_D指针指向私有成员和Q_Q指针指向公开成员开发DLL为什么要使用Q_D/Q_Q指针?假如,我们要把下面这个类封装成DLL:class MyClass{ public: MyClass(); ~MyClass(); private: int myVar;};显然,这个私有成员myVar是我们不想给第三方看到的,而且是代码二进制兼容性的大敌。所以我们使用Q_D指针和Q_D指针,对该私有成员myVar进行私有化。1、使用d_ptr指针指向MyClass的私有成员我们

2021-01-07 16:07:31 417

原创 《Qt设计DLL》之创建无界面的DLL

Qt设计DLL之创建无界面的DLL1、DLL库的创建2、创建测试工程Qt是一个非常强大的应用程序开发框架,它既可以开发GUI程序,也可用于开发非GUI程序。下面将要展示的是如何使用Qt开发不带界面的DLL。开发的IDE是Qt Creator 4.11.1,系统环境Windows,编译器是Qt 5.14.2 MSVC2015 64bit1、DLL库的创建打开Qt Creator后,点击文件→新建文件或项目→Library→C++ Library给工程指定好名称(这里命名为noWinDLL)、路径和

2021-01-07 15:05:19 756

空空如也

空空如也

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

TA关注的人

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