8 ly1390811049

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 7w+

windows的消息机制

一、 什么是消息在解释什么是消息之前,我们先讨论一下程序的执行机制问题。大体上说,程序按照执行机制可以分为两类:第一类是过程驱动。比如我们最早接触编程时写的C程序,又或者单片机程序。这类程序往往预先已经设定好了执行流程,我们执行时只是按部就班的执行;第二类是事件驱动。事件,相信大家都能够理解。每个事件的发生都是随机的,每个事件都会有发生的时刻,类似生活中的事件。程序中的事件也会有自己的触发点,事件驱动程序就是事先编写好了针对每个事件的处理流程。在Windows的操作系统中,消息就是Windows中的

2020-08-09 15:57:55

植物大战僵尸分析

查找产生僵尸的CALL使用CE搜索地图上僵尸的数量,找到保存僵尸数量的地址,然后CE附件找到增加僵尸数量的语句,因为产生僵尸后一定会增加僵尸的数量。CE附加找访问该地址的代码使用OD在 0043678F - 01 46 10 - add [esi+10],eax 下断点产生僵尸时,断下,查看栈在反汇编窗口中查看第一个CALL,返回这个CALL没有参数,产生僵尸的CA...

2020-04-07 00:20:24

Qt更方便的使用线程池

使用Qt的线程池必须继承QRunnable这样有的时候用起来很麻烦#include <memory>#include <functional>#include <QRunnable>class CThreadPoolTask : public QRunnable{private: CThreadPoolTask(std::function&l...

2020-08-09 14:11:09

C++类型转换

在C语言中转换类型的方法一般是使用强制转换,就如下列的转换方法inti=0;void*v=(void*)i;在C++中类型的转换大致有四种:1. dynamic_cast类型转换(1) dynamic_cast是在运行时检查的,属于动态转换;(2) 一般用于基类和派生类之间的相互转换。QThread*thread=newQ...

2020-08-09 14:10:53

Qt在VS中使用单元测试

在工程的解决方案中,新建一个单元测试项目AutoTest,Qt控制台项目,勾选Core,Test模块创建CTest类#include <QObject>#include <QtTest>class CTest : public QObject{ Q_OBJECTpublic: CTest(); ~CTest();private slots:...

2020-08-09 14:10:41

启用windows的程序崩溃自动dump功能

以管理员身份 运行 :OpenDump.bat 其本质是写注册表。运行后: 任何程序崩溃都会在C:\CrashDump 产生dmp文件(比较大,约50到200M)。至少在Win7、Win10的电脑,Win10的平板上运行正确。OpenDump.bat@echo offecho 正在启用Dump...reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Mi...

2020-08-09 14:07:47

queue容器

这种存储结构最大的特点是,最先进入 queue 的元素,也可以最先从 queue 中出来,即用此容器适配器存储数据具有“先进先出(简称 "FIFO" )”的特点,因此 queue 又称为队列适配器。queue容器适配器的创建1) 创建一个空的 queue 容器适配器,其底层使用的基础容器选择默认的 deque 容器:std::queue<int> values;通过此行代码,就可以成功创建一个可存储 int 类型元素,底层采用 deque 容器的 queue 容器适配器。2)

2020-08-09 14:03:43

C++11 find和find_if的用法

STL的find,find_if函数提供了一种对数组、STL容器进行查找的方法。使用该函数,需 #include <algorithm>我们查找一个list中的数据,通常用find(),例如:1、findusing namespace std;int main(){list<int> lst;lst.push_back(10);lst.push_back(20);lst.push_back(30);list<i...

2020-08-09 14:03:09

解析PDB文件

参考vs的安装目录中的DIA2Dump工程C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\DIA SDK\Samples\DIA2Dump

2020-07-29 18:58:27

Qt处理windows系统消息实现全局热键

QT5中处理windows系统消息QAbstractNativeEventFilterNativeEventFilter,本地事件过滤器,在Qt中,当需要对系统消息或者自定义消息进行处理时会用到。相关的有QAbstractNativeEventFilter类和两个函数(installNativeEventFilter、removeNativeEventFilter)一QAbstractNativeEventFiltervirtual bool nativeEventFilter(const .

2020-07-21 19:54:38

QWidget

QWidget是所有GUI控件的基类QWidget属性frameGeometry : const QRectframeSize : const QSizex : const intpos : QPoint框架的几何区域和大小和坐标,框架指窗口的最外层geometry : QRect内部绘图区域大小和坐标...

2020-07-16 19:43:07

进程遍历

1. CreateToolhelp32Snapshot()、Process32First()和Process32Next()void ProcessSnapshot(){ PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32); HANDLE hProcessSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcessSnapshot == INVALID_HANDLE

2020-07-15 20:29:39

qmake,make,nmake

gcc是GUN compiler Collection (GUN编译器套件),也可以简单理解为编译器,他可以编译多种语言。make是批处理工具,通过调用makefile文件(抽象层次很低)中的命令来进行多文件编译和链接。maekfile + make可以认为是unix下的项目管理工具。cmake是跨平台的项目管理工具。在windows下会生成visual studio的工程,在Linux下会生成makefile。还可以生成exlipse工程文件。cmake是抽象层次更高的项目管理工具,cmake命令

2020-06-30 00:26:08

error C3688: 文本后缀 __FSTREXP 无效未找到文文本运算符或文本运算符模板“operator __FSTREXP

error C3688: 文本后缀“__FSTREXP”无效;未找到文文本运算符或文本运算符模板“operator """"__FSTREXP”__FUNCTION__作为宏参数时,前后要有空格#define dPrintA(_x_) OutputDebugStringA(_x_)修改为#define dPrintA(_x_) OutputDebugStringA( _x_ )...

2020-06-18 23:00:55

d指针/p指针

1.二进制兼容性所谓二进制兼容就是在做版本升级(也可能是Bug fix)库文件的时候,不必要做重新编译使用这个库的可执行文件或使用这个库的其他库文件,同时能保证程序功能不被破坏。比如修改一个类的成员变量,新增对象的内存就会增大,根据对象的指针加便宜的方式就不能访问到正确的数据2.D指针保持一个库中的所有公有类的大小恒定的问题可以通过单独的私有指针给予解决。这个指针指向一个包含所有数据的私有数据结构体。这个结构体的大小可以随意改变而不会产生副作用,应用程序只使用相关的公有类,所使...

2020-06-12 15:50:52

C++ 查看预处理后的源文件

gcc -E filename.cpp会生成 filename.cpp 的预处理文件

2020-06-12 13:36:29

多线程MT和多线程MD的区别

多线程MT加载的是静态运行时库,属于C语言版本;而多线程MD版本加载是动态运行时库,属于微软版本。在工程属性窗体中选择配置属性,C++选项的代码生成多线程调试 DLL (/MDd)和多线程调试 DLL (/MTd)是Debug版本,后面没有d的是Release版本。一、全局堆句柄不一样。网上有一个说法,就是一个线程一个栈,一个模块一个堆。前者很容易有理解,每个线程创建的时候在CreateThread中都能制定默认栈大小,只是很多情况下都取了默认值。而一个模块一个堆呢?其实很简单测试,如果是一个多线程

2020-06-12 11:23:25

Qt5.13.0静态编译

所用到的库,都上传到了githubhttps://github.com/nangongyuan/Qt-5.13.0-.git所需包含的头文件,这里直接用了绝对路径,实际使用中最好不要E:\Qt\Qt5.13.0\5.13.0\Src\qtbase\include\QtCoreE:\Qt\Qt5.13.0\5.13.0\Src\qtbase\include\QtGuiE:\Qt\Qt5.13.0\5.13.0\Src\qtbase\include\QtWidgetsE:\Qt\Qt5.

2020-06-10 00:18:24

查找哪个程序占用了文件

任务管理器->资源监视器->CPU->关联句柄根据关键字搜索,文件名,目录名等

2020-06-08 17:25:59

priority_queue 容器

priority_queue 容器适配器模拟的也是队列这种存储结构,即使用此容器适配器存储元素只能“从一端进(称为队尾),从另一端出(称为队头)”,且每次只能访问 priority_queue 中位于队头的元素。但是,priority_queue 容器适配器中元素的存和取,遵循的并不是 “First in,First out”(先入先出)原则,而是“First in,Largest out”原则。直白的翻译,指的就是先进队列的元素并不一定先出队列,而是优先级最大的元素最先出队列。那么,priority

2020-06-03 22:38:57

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享精英
    分享精英
    成功上传11个资源即可获取