04 2022 档案
摘要:##二分查找的适用条件 二分查找只适用于有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找 二分查找的运行时间为对数时间O(LONG2 N) ##二分查找非递归的实现 /** * @param arr 待查找的数据 升序排列 * @param target 需要查找的数 * @retu
        阅读全文
                
摘要:##说明 将可执行程序反汇编,通过分析反汇编代码来理解其代码功能(例如各接口的数据结构等)然后用高级语言重新描述 这段代码,逆向分析原始软件的思路,这个过程就称作逆向工程(Reverse Engineering),有时也简单地称作逆向(Reversing).这是一项很重要的技能,需要扎实的编程功底和
        阅读全文
                
摘要:##Switch语法格式 Switch(表达式) { case 常量表达式1: 语句; break; case 常量表达式2: 语句; break; case 常量表达式3: 语句; break; default: 语句; break; } ##Switch注意事项 * case后面必须是常量表达式
        阅读全文
                
摘要:##消息的产生 鼠标 键盘 其它应用程序 内核程序 ##消息的处理过程 ##MSG typedef struct tagMSG { HWND hwnd; //Handle to the window whose window procedure receives the message. //消息是
        阅读全文
                
摘要:##第一个窗口程序 #include "stdafx.h" #include<windows.h> #include<stdio.h> //窗口程序 LRESULT CALLBACK WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lP
        阅读全文
                
摘要:##窗口的本质:GUI编程 ##HANDLE&HWND HANDLE内核对象的句柄表是私有的只能在有效的进程中使用,其它进程中无法使用 HWND(全局句柄表) ##GDI图形设备接口(Graphics Device Interface) 设备对象(HWND) DC(设备上下文,Device Cont
        阅读全文
                
摘要:##什么是线程 线程是附属在进程上的执行实体,是代码的执行流程。 一个进程可以包含多个线程,但是一个进程至少要包含一个线程。(进程是空间上的概念,线程是时间上的概念) 单核CPU可以执行多线程程序 有几个线程就表示着有几个代码在执行,但是它们并不一定是同时执行,例如单核的CPU情况下是不存在多线程的
        阅读全文
                
摘要:##回忆 我们了解到CreateProcess()函数创建进程会有一个结构体LPPROCESS_INFORMATION lpProcessInformation,这个结构体会有进程和线程ID、句柄信息,那么什么是ID?什么是句柄? ##内核对象 首先我们来了解一下内核对象,以后会经常与内核对象打交道
        阅读全文
                
摘要:##ID与句柄 如果我们成功创建一个进程,CreateProcess函数会给我们返回一个结构体,包括四个数 据:进程编号(ID)、进程句柄、线程编号(ID)、线程句柄. 进程ID其实我们早见过了,通常我们称之为PID 句柄每一个进程都有一张自己的私有的表,而操作系统也有一份句柄表,我们称为全局句柄表
        阅读全文
                
摘要:WIN32 malloc函数的底层实现是Win32API ##字符编码 原始的ASCII编码最多能表示127个符号 0-7F(十六进制) 缺点:表示的符号太少了 ASCII编码的扩展:GB2312或GB2312-80(中文) 127-255(7F-80) 缺点:不能沟通(可能出现乱码) 相当于一个汉
        阅读全文
                
 
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号