
WIN32
jadeshu
这个作者很懒,什么都没留下…
展开
-
常见数据打包存储模式方式
1.目录结构 最常见的一种,目录结构中存储了一个目录索引表,这个目录索引表中包含了与文件包内的资源文件相关的信息,例如文件名、文件属性、文件偏移、文件大小等================================结构方式=======================----文件头---------------- +0 文件头标识符 (Magic nu...原创 2020-01-11 22:13:59 · 2452 阅读 · 0 评论 -
BMP、PNG格式解析
一、BMP1.BMP简介 微软定义一种图片数据格式。 .....位图数据.....2.文件信息头3.位图信息头 需要特别注意:biHeight数据域,有正有负值,代表意义不同。4.彩色表和颜色 如果图像是单色、16色和256色,则紧跟着调色板的是位图数据,位图数据是指向调色板的索引序号。 如果位图是16位、24...原创 2020-01-11 21:21:04 · 2290 阅读 · 0 评论 -
GDI
一、GDI是图形设备接口简称二、GDI意义:在于将程序对图形界面的操作和硬件设备隔绝开来,在程序中可以将所有的图形设备都看成是虚拟设备,包括显示器或打印机等,然后通过GDI函数用同样的方法去操作它们,然后由WINDOWS负责将函数调用转化成针对具体硬件的操作。三、GDI操作引出三个方面----When,Where和How When-----进行图形操作是什么时候原创 2017-06-02 19:54:16 · 341 阅读 · 0 评论 -
注册表
一、注册表1.注册表实际上是一个管理配置系统运行参数的核心数据库,它记录了安装软件与运行程序的关联关系,计算机的硬件配置等信息。可以说计算机上所有针对硬件、软件、网络的操作都是源于注册表的。2.注册表内的所有信息都是存放在 System.dat、User.dat 文件中的,其中 System.dat 文件包含了所有的硬件信息和软件信息,User.dat 包含了用户信息。3.修改注册...原创 2017-06-03 18:55:06 · 1202 阅读 · 0 评论 -
子窗口与父窗口之间消息
一.子窗口控件向父窗口发送消息a.所有的控件,要向父窗口发送消息,都是发送的WM_COMMAND消息b.由于子窗口控件都是系统内部定义的,即消息处理回调函数和窗口类由系统部署二.父窗口向子窗口控件发送消息a.父窗口发送给子窗口控件的消息不仅有WM_开头的标准消息,还会有各种控件单独定制的消息比如:单击按钮BM_CLICK,按钮控件接受到这个消息之后,就马上知道了原创 2017-05-04 18:58:28 · 2656 阅读 · 0 评论 -
VS 统计整个项目总的代码行数
vs如何快速统计项目总代码行数呢,如下:vs编辑 | 查找和替换 | 在文件中查找查找选项选 选择正则表达式^b*[^:b#/]+.*$设置如下: 结果在查找结果的最后一行,如下 ...转载 2018-06-03 19:15:18 · 4170 阅读 · 0 评论 -
Vs中包含目录、库目录、附加包含目录、附加库目录、附加依赖项之详解
VS项目中的包含目录、库目录、附加包含目录、附加库目录、附加依赖项均在"项目->属性->配置属性"下进行配置,具体说明如下:VC++目录: 包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录 库目录:寻找.lib文件的搜索目录C/C++: 常规->附加包含目录:寻找#include<xxxx.h>...转载 2018-11-26 20:05:54 · 6940 阅读 · 1 评论 -
Windows 消息以及消息处理算法--线程和消息队列详解
Windows以消息驱动的方式,使得线程能够通过处理消息来响应外界。Windows 为每个需要接受消息和处理消息的线程建立消息队列(包括发送消息队列,登记消息队列,输入消息队列,响应消息队列),其中发送消息队列保存其他线程通过SendMessage发送给该线程建立窗口的消息,登记消息队列保存通过PostMessage发送给该线程或者该线程建立窗口的消息,输入消息队列保存系统的输入(包括键盘,鼠...转载 2018-12-19 19:36:02 · 895 阅读 · 0 评论 -
COM中参数标识
原创 2019-03-08 20:02:29 · 483 阅读 · 0 评论 -
WinSDK(菜单笔记)
原创 2019-03-08 20:14:43 · 848 阅读 · 0 评论 -
GDI和内核对象区别
1、GDI对象和核心对象之间最主要的区别在于GDI对象有单一拥有者,不是进程就是线程2、核心对象可以有一个以上的拥有者,甚至可以跨进程,为了保持对每一位(拥有者)的追踪,核心对象保持了一个引用计数,以记录有多少handles对应到此对象,对象中也记录了哪一个进程或线程是拥有者。3、当你调用CloseHandle()时,引用计数递减1,...原创 2019-03-19 18:02:31 · 277 阅读 · 0 评论 -
BOOL和bool的区别
原创 2020-04-10 01:59:06 · 229 阅读 · 0 评论 -
控件绘制的方法
1·处理WM_PAINT 最极端的选择是执行一个 WM_PAINT 处理程序,并且自己完成所有的绘制。这意味着,您的代码将需要进行一些与呈现控件相关的琐事 — 创建适当的设备上下文(一个或多个),决定控件的大小和位置,绘制控件等。在绘制过程中,很少需要这种级别的控件。2·所有者绘制(owner draw) 控制控件绘制的另一种方法是利用所有者绘制。事实上,您...原创 2019-03-17 20:16:16 · 220 阅读 · 0 评论 -
任务队列简单实现
实用场景:例子1:例子2: 生产者-----消费者 之间C/C++.h#ifndef __TASK_QUEUE_H__#define __TASK_QUEUE_H__typedef struct Task{ void* (*run)(void *); // 任务处理函数 void* param; // 附加参数}Task_t;ty...原创 2019-03-27 19:18:02 · 7520 阅读 · 1 评论 -
线程相关
1.进程间通信 (邮件和管道 PostMessage() 剪切板 ) ---邮件是单向的数据传输通道 ---管道又分为匿名管道和命名管道 匿名管道式本地的双向数据传输通道,命名管道式支持网络和本地两种方式的双向数据传输通道2.进程之间有互斥和同步3.MFC多线程 同步对象(临界区CCriticalSection,事件CEvent,互斥量CMutex,信号量C...原创 2013-04-14 15:03:51 · 468 阅读 · 0 评论 -
进程
一、进程是程序运行的一个实例,程序可以有多个实例(多个进程)二、获取进程句柄、进程ID 1.获取当前进程句柄NDLE WINAPI GetCurrentProcess(void); 2.获取进程IDDWORD WINAPI GetProcessId( __in HANDLE Process); 3.获取进程原创 2017-05-29 01:13:07 · 331 阅读 · 0 评论 -
进程模块句柄
一、注意区别进程模块句柄和进程内核句柄二、每个可执行文件或者DLL文件被装入到某个进程地址空间后,都会有一个唯一的实例句柄,来表示装入后的可执行文件或者DLL,此时我们把这个可执行文件或者DLL叫做进程地址空间中的一个模块。 进程模块句柄的本质就是当前模块的起始地址。三、如何获取进程模块句柄 a.HMODULE GetModuleHandle(原创 2017-05-28 23:42:22 · 2532 阅读 · 0 评论 -
WIN32程序启动过程
应用程序启动过程(书籍)1.WIN32程序启动过程就是进程的创建过程,系统调用CreateProcess函数创建新的进程(当一个线程调用CreateProcess函数时,系统会创建一个进程内核对象,其使用计数初始化为1.此进程内核对象不是进程本身,仅仅是一个系统用来管理这个进程的小的数据结构)2.系统然后为新的进程创建一个虚拟地址空间,加载应用程序运行时所需的代码和数据3.系统接着为新原创 2013-04-14 14:56:38 · 767 阅读 · 0 评论 -
windows问题集合
1.windows创建内核对象时系统会创建内核数据块,我们通过什么方式去创建,打开,操作这些数据块呢?微软是如何做的?如果是你又会如何做?(提示:内核句柄)2.进程 发展历史(系统方面发展)答:进程作为操作系统的基本细胞,不仅是系统内部独立运行的实体,而且是独立竞争资源的基本实体! 程序是为了完成某项任务编排的语句序列,它告诉计算机如何执行,所以程序需要执行,程序运行就要占有计算...原创 2016-12-14 19:06:09 · 369 阅读 · 0 评论 -
系统信息的管理函数API
1.Windows系统信息1.1获取系统版本: BOOL WINAPI GetVersionEx( __in_out LPOSVERSIONINFO lpVersionInfo ); lpVersionInfo一个OSVERSIONINFO或OSVERSIONINFOEX结构接收操作系统的信息。在调用之前GetVersionEx功能,设置dwOSVersio...原创 2016-12-08 21:46:32 · 653 阅读 · 0 评论 -
WM_PAINT(父子窗口间)
WM_PAINT(父子窗口间)窗口句柄(HWND)都是由操作系统内核管理的,系统内部有一个z-order序列,记录着当前从屏幕底部(假象的从屏幕到眼睛的方向),到屏幕最高层的一个窗口句柄的排序,这个排序不关注父窗口还是子窗口。当任意一个窗口接受到WM_PAINT消息产生重绘,更新区绘制完成以后,就搜索它的前面的一个窗口,如果此窗口的范围和更新区有交集,就向这个发送wm_paint消息,周而复始...转载 2016-12-25 19:30:27 · 1087 阅读 · 0 评论 -
键盘
1.队列 1.1 当用户按下和释放键盘上的按键时,系统和键盘设备驱动程序将硬件扫描码转换为格式化后的消息。 1.2分两步:(1)先把消息存储在系统消息队列中(2)再把消息发送到应用程序消息队列2.键盘消息 键盘事件的消息可分为击键和字符两种3.击键消息(通常键按下和键释放是成对出现)键按下键释放非系统键击WM_KEY原创 2017-01-08 16:00:09 · 525 阅读 · 0 评论 -
Windows操作系统中的I/O(读/写 输入/输出)
导言写一个Windows平台下的应用程序大多时候都是离不开读写文件,网络通信的。比如一个服务应用程序来说,它可能从网络适配器接受用户的请求,对请求进行处理计算,最终将用户端所需的数据返回,中间可能还涉及到对磁盘的读写,这些都是I/O操作,所以,要设计一个稳健的,高效的,伸缩性好的应用程序,就必须将Windows的I/O机制搞清楚。一、 两种 读/写 机制输入Input / 输出Output,...转载 2017-03-10 22:43:26 · 3619 阅读 · 0 评论 -
GetLastError函数
错误代码各个位数的意义:GetLastError函数返回值!SetLastError可是设置这个错误代码。位31-30292827-1615-0内容严重性Micorsoft/客户定制保留Facility代码异常代码原创 2017-05-01 20:09:57 · 1090 阅读 · 0 评论 -
FormatMessage函数
DWORD WINAPI FormatMessage( __in DWORD dwFlags, __in_opt LPCVOID lpSource, __in DWORD dwMessageId, __in DWORD dwLanguageId, __out LPTSTR lpBuffer, __in DWORD nSize原创 2017-05-01 20:17:12 · 1782 阅读 · 0 评论 -
windows系统和进程内存基础知识
原创 2017-05-01 23:23:11 · 290 阅读 · 0 评论 -
模仿WIN32程序处理消息
#include "stdafx.h"#include "MyMessage.h"#include using namespace std;#ifdef _DEBUG#define new DEBUG_NEW#define DBUG_LOG(st) printf("%s\r\n",st);#else#define DBUG_LOG(st) #endif#define MSG_原创 2017-05-04 00:49:32 · 301 阅读 · 0 评论 -
序列化与反序列化
一.序列化 把对象转换为字节序列的过程称为对象的序列化二.反序列化 把字节序列恢复为对象的过程称为对象的反序列化原创 2017-04-21 19:36:49 · 238 阅读 · 0 评论 -
WIN32窗口类风格和窗口风格(备查询)
一.WNDCLASS typedef struct { UINT cbSize //这个结构体的长度,一般用sizeof(WNDCLASSEX)设置 UINT style //窗口式样 WNDPROC lpfnWndProc //窗口消息处理的函数名 int cbClsExtra //分配...原创 2017-04-22 21:50:03 · 5312 阅读 · 0 评论 -
内核对象
1.内核对象用句柄来标识 每个内核对象其实就是一块内存块,这个内存块位于操作系统的内核地址空间,因此应用程序不能直接操作内核对象,需要用系统给定的函数来操作,不同的内核对象由不同的函数窗口。2.内核对象有哪些Ø 令牌对象tokenØ 事件对象EventØ 文件对象FileØ 文件映射对象Mapping_FileØ 线程对象ThreadØ原创 2017-05-13 16:48:17 · 728 阅读 · 0 评论 -
消息分析器-----HANDLE_MSG
windows消息分析器的实现很好理解,windows操作系统使用消息处理机制,那么,我们所设计的程序如何才能分辨和处理系统中的各种消息呢?这就是消息分析器的作用. 简单来说,消息分析器就是一段代码,在我的讲述中,将分7重来循序渐进的介绍它.从最初的第1重到最成熟的第7重,它的样子会有很大的变化.但,实现的功能都是一样的,所不同的,仅仅是变得更加简练罢了. 程转载 2013-06-05 04:15:20 · 446 阅读 · 0 评论