自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++ 函数指针和指针函数

函数指针的声明方法为:返回值类型 ( *指针变量名) ([形参列表]);注1:“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:int func(int x); /* 声明一个函数 */int (*f) (int x); /* 声明一个函数指针 */f=func; /* 将func函数的首地址赋给指针f */.

2021-03-31 15:36:17 497

原创 HOOK(钩子,挂钩)

HOOK(钩子,挂钩)是一种实现Windows平台下类似于中断的机制。HOOK机制允许应用程序拦截并处理Windows消息或指定事件,当指定的消息发出后,HOOK程序就可以在消息到达目标窗口之前将其捕获,从而得到对消息的控制权,进而可以对该消息进行处理或修改,加入我们所需的功能。钩子按使用范围分,可分为线程钩子和系统钩子,其中,系统钩子具有相当大的功能,几乎可以实现对所有Windows消息的拦截、处理和监控。这项技术涉及到两个重要的API,一个是SetWindowsHookEx,安装钩子;另一个是U

2021-03-30 13:42:42 1099

原创 mfc 类图

1.

2021-03-26 14:02:16 529

原创 cdc绘图

设备上下文 :m_hDC或者GetSafeHdc函数CDC对象: CDC对象或指针 或FromHandle关联:Attach分离:Detach一、客户区大小和DC在绘图前,必须先得到客户区大小和设备上下文DC。客户区大小(2种办法)1)在消息响应函数OnSize中获得利用属性窗口的信息页,在视图类中添加WM_SIZE消息的响应函数OnSize。该函数在窗口第一次显示或窗口大小被改变时会被Windows系统调用。其输入参数中的cx和cy就是客户区大小的宽和高。v...

2021-03-09 15:23:54 790

原创 CPaintDC 、CWindowDC、 CClientDC、cMemDC、 CDC

CPaintDC 、CWindowDC、 CClientDC、 CDC关系图:一句话概括:CPaintDC 无效区dc,相当于BeginPaint, EndPaintCClientDC 客户区dc,相当于GetDC, ReleaseDCCWindowDC 整窗口dc, 相当于GetWindowDC, ReleaseDCCDC 任何dc, ...

2021-03-08 16:49:07 715

原创 CmemDC类 的使用方法

CmemDC类 的使用方法CMemDC其实就是对内存DC的创建与删除进行一个包装。1、在CMemDC的构造函数中创建内存DC;2、用户可以在CMemDC dc中进行图像的绘制;3、在CMemDC的析构函数中进行内存DC到目标DC的拷贝,并做相应的GDI对象清理工作。使用这样的类可以让你的代码有很大程度的简洁。举个例子:如果我们不使用CMemDC,一般我们会写下面的一段的代码,CView::OnDraw(CDC*pDC){CRectrcClient;GetClientRe...

2021-03-08 16:43:36 749

原创 句柄即GetSafeHwnd的作用

GetSafeHwnd()和GetSafeHandle()的主要区别:1.使用者不同:(1)窗体使用:GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的对HWND指向的窗体进行所需的操作了;(2)GDI对象使用:GetSafeHandle(),用于获取GDI对象的句柄。注意:在使用指针时强烈建议这么做:// pSomeWnd为一个窗体的指针if ( NULL != pSomeWnd && NULL != pSo..

2021-03-08 11:07:29 1221

原创 c++ 使用gdiplus

在要使用的工程中,增加如下代码#include< comdef.h > // 初始化一下com口// 在GDI+中,需要定义一个ULONG_PTR。#ifndefULONG_PTR#define ULONG_PTRunsignedlong*#endif// 通过typedef定义的。与上面的宏定义的作用效果是一样的。这两个,任意一种方法都可以。其他的能达到同样效果的方法也一样。#if defined(_WIN64)typedefuns...

2021-03-05 10:27:56 2672 2

原创 在虚函数 声明中写override的作用

C++保留字overrideoverride 仅在成员函数声明之后使用时才是区分上下文的且具有特殊含义;否则,它不是保留的关键字。使用 override 有助于防止代码中出现意外的继承行为。以下示例演示在未使用override 的情况下,可能不打算使用派生类的成员函数行为。编译器不会发出此代码的任何错误。class BaseClass{ virtual void funcA(); virtual void funcB() const; virtual void funcC(...

2021-03-04 15:34:48 1351 1

qt QTcpServer多线程

QTcpServer多线程 每个客户端连接的tcpSocket分别分配一个专门的线程来处理。 核心思想:继承并重写QTcpServer的incomingConnection函数去自己实现tcpsocket连接的建立和分配。 incomingConnection函数说明: 当QTcpServer有一个新的连接时这个虚函数被调用。该socketDescriptor参数是用于接受连接的本地套接字描述符。 该函数会创建一个QTcpSocket,并设置套接字描述符为socketDescriptor,然后存储QTcpSocket在挂起连接的内部清单。最后newConnection()被发射。 重新实现这个函数来改变服务器的行为,当一个连接可用。 注意:如果你想处理在另一个线程一个新的QTcpSocket对象传入连接,您必须将socketDescriptor传递给其他线程,并创建了QTcpSocket对象存在并使用其setSocketDescriptor()方法。

2024-09-03

Qt 插件QPluginLoader的使用例子

qt插件(Plug-in,又称addin),一种遵循一定规范的应用程序接口编写出来的程序.应用程序使用 QPluginLoader 检测和加载插件。在这种情况下,插件可以提供任意功能,不限于数据库驱动程序、图像格式、文本编解码器、样式以及扩展Qt功能的其他类型的插件. 面向Interface编程,内部封装,模块和整体流程开发分离,提高开发效率。 开发测试环境:QT5.15.2 + MSVC 2019.

2024-08-22

aws-sdk-cpp 1.11.370

amazon (S3) 是一个公开的服务,Web 应用程序开发人员可以使用它存储数字资产,包括图片、视频、音乐和文档。 S3 提供一个 RESTful API 以编程方式实现与该服务的交互MinIO是兼容AWS SDK,所以可以通过aws访问minio文件系统。 现在windows 64位系统上aws的c++版本已编译好的库,可直接拿来使用。使用的是VS2019

2024-08-15

C++日志系统log4cxx

C++日志系统log4cxx

2024-01-09

qt QDataWidgetMapper讲解

qt QDataWidgetMapper讲解

2023-06-27

qt QSqlRelationalTableModel 详解

qt QSqlRelationalTableModel 详解

2023-06-27

Qt QSqlQueryModel详解

Qt QSqlQueryModel详解

2023-06-26

Qt QSqlTableModel详解

Qt QSqlTableModel详解

2023-06-26

空空如也

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

TA关注的人

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