浅墨浓香

想要天亮进城,就得天黑赶路。

导航

上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 38 下一页

2016年3月25日

摘要: 1. 遭人遗弃的goto (1)高手潜规则:禁用goto (2)项目经验:程序质量与goto出现的次数成反比 (3)最后的判决:将goto打入冷宫(1)循环语句的基本工作方式 【实例分析】goto副作用的分析 2. void的意义 (1)void修饰函数返回值和参数——为了表示“无” ①如果函数没有 阅读全文

posted @ 2016-03-25 10:57 浅墨浓香 阅读(394) 评论(0) 推荐(0) 编辑

摘要: 1. 循环语句分析 (1)循环语句的基本工作方式 ①通过条件表达式判定是否执行循环体 ②条件表达式遵循if语句表达式的原则 (2)do、while、for的区别 ①do语句先执行后判断,循环体至少执行一次 ②while语句先判断后执行,循环体可能不被执行 ③for语句先判断后执行,相比while更简 阅读全文

posted @ 2016-03-25 10:31 浅墨浓香 阅读(430) 评论(0) 推荐(0) 编辑

摘要: 1. if语句 (1)if语句用于根据条件选择执行语句 (2)else不能独立存在且总是与它之前最近的if相匹配 (3)else语句后可以接连其他if语句 (4)if语句中零值比较的注意点 ①bool型变量直接出现于条件中,不要进行比较 ②变量和0值比较时,0值应该出现在比较符号左边 ③float型 阅读全文

posted @ 2016-03-25 00:36 浅墨浓香 阅读(365) 评论(0) 推荐(0) 编辑

2016年3月24日

摘要: 1.C语言的变量属性 (1)C语言中的变量可以有自己的属性 (2)在定义变量的时候可以加上“属性”关键字 (3)“属性”关键字指明变量的特有意义。语法:property type var_name; 2. auto关键字 (1)auto即C语言中局部变量的默认属性 (2)auto表明将被修饰的变量存 阅读全文

posted @ 2016-03-24 23:47 浅墨浓香 阅读(378) 评论(0) 推荐(0) 编辑

2016年3月23日

摘要: 1. C语言中的类型之间的转换:强制类型转换和隐式类型的转换 2. 强制类型转换 (1)强制类型转换的语法:(Type)var_name或(Type)value (2)强制类型转换的结果 ①目标类型能够容纳目标值:结果不变 ②目标类型不能容纳目标值:结果将产生截断 (3)注意:不是所有的强制类型转换 阅读全文

posted @ 2016-03-23 23:21 浅墨浓香 阅读(368) 评论(0) 推荐(0) 编辑

摘要: 1. 内存中的浮点数——存储方式:符号位、指数、尾数的符号 类型 符号位 指数 尾数 float 1位(第31位) 8位(第23-30位) 23位(第0-22位) double 1位(第63位) 11位(第52-62位) 52位(第0-51位) float与double类型的数据在计算机内部的表示法 阅读全文

posted @ 2016-03-23 08:50 浅墨浓香 阅读(414) 评论(0) 推荐(0) 编辑

摘要: 1. 数据类型 1.1 计算机的符号位:数据类型的最高位用于标识数据的符号(最高位为1——负数,最高位为0——正数) 【编程实验】 2. 有符号数的表示法 (1)在计算机内部用补码表示有符号数 ①正数的补码为正数本身 ②负数的补码为负数的绝对值各位取反加1 8位整数 5的补码为: 0000 0101 阅读全文

posted @ 2016-03-23 08:00 浅墨浓香 阅读(478) 评论(1) 推荐(0) 编辑

摘要: 1.数据类型 1.1 什么是数据类型 (1)数据类型可以理解为固定内存大小的别名 (2)数据类型是创建变量的模子 1.2 数据类型的本质 2. 变量的本质 (1)变量是一段实际连续存储空间的别名 (2)程序中通过变量来申请并命名存储空间 (3)通过变量的名字可以使用存储空间 3.实例分析 (1)类型 阅读全文

posted @ 2016-03-23 00:00 浅墨浓香 阅读(528) 评论(0) 推荐(0) 编辑

2016年3月19日

摘要: 28.1 原始输入线程(RIT) (1)图解硬件输入模型 ①当操作系统初始化时会创建一个原始输入线程(RIT)和系统硬件消息队列(SHIQ),这两者是系统硬件输入模型的核心。当SHIQ队列有硬件(如鼠标或键盘)消息时,RIT被唤醒,并将事件添加到用户线程的VIQ队列。 ②任何时刻,只能有一个用户线程 阅读全文

posted @ 2016-03-19 19:08 浅墨浓香 阅读(856) 评论(0) 推荐(0) 编辑

摘要: 27.4 唤醒一个线程 27.4.1 线程的挂起与唤醒 (1)当线程调用GetMessage或WaitMessage,而消息队列中又没有消息出现时,线程会被挂起。 (2)当消息被“Post”(也可以是线程间的“Send”)到消息队列时,相应的Wake标志位会被设置,以表明该线程可被调度。 27.4. 阅读全文

posted @ 2016-03-19 18:30 浅墨浓香 阅读(678) 评论(0) 推荐(0) 编辑

摘要: 27.1 线程的消息队列 (1)Windows用户对象(User Object) ①类型:图标、光标、窗口类、菜单、加速键表等 ②当一个线程创建某个对象时,则该对象归这个线程的进程所有,当进程结束时,如果用户没有明确删除这个对象,则操作系统会自动删除这个对象。 ③窗口和钩子(hook)这两种用户对象 阅读全文

posted @ 2016-03-19 18:20 浅墨浓香 阅读(1112) 评论(0) 推荐(1) 编辑

2016年3月18日

摘要: 26.1 Windows错误报告控制台 26.2 可编程了的Windows错误报告 26.3 对进程中的所有的问题报告进行定制 26.4 问题报告的创建与定制 26.4.1 创建一个自定义的问题报告 26.4.2设置报告参数:WerReportSetParameter 26.4.3 将小型转储文件放 阅读全文

posted @ 2016-03-18 21:27 浅墨浓香 阅读(378) 评论(0) 推荐(0) 编辑

2016年3月6日

摘要: 25.1 UnhandledExceptionFilter函数详解 25.1.1 BaseProcessStart伪代码(Kernel32内部) void BaseProcessStart(PVOID lpfnEntryPoint) //参数为线程函数的入口地址 { DWORD retValue; 阅读全文

posted @ 2016-03-06 00:12 浅墨浓香 阅读(1227) 评论(0) 推荐(0) 编辑

2016年3月5日

摘要: 24.1 程序的结构 (1)try/except框架 __try{ //被保护的代码块 …… } __except(except fileter/*异常过滤程序*/){ //异常处理程序 } (2)说明 ①当__try块中的代码发生异常时,__except()中的过滤程序就被调用。 ②过滤程序可以是 阅读全文

posted @ 2016-03-05 17:43 浅墨浓香 阅读(2246) 评论(0) 推荐(1) 编辑

2016年2月29日

摘要: 23.3 终止处理程序 23.3.1 程序的结构 (1)框架 __try{ //被保护的代码块 …… } __finally{ //终止处理 } (2)__try/__finally的特点 ①finally块总是保证,无论__try块中的代码有无异常,finally块总是被调用执行。 ②try块后面 阅读全文

posted @ 2016-02-29 21:14 浅墨浓香 阅读(557) 评论(0) 推荐(0) 编辑

2016年2月27日

摘要: 23.2 编译器层面对系统SEH机制的封装 23.2.1 扩展的EXCEPTION_REGISTRATION级相关结构:VC_EXCEPTION_REGISTRATION (1)VC_EXCEPTION_REGISTRATION结构 (2)scopetable_entry结构体 (3)VC异常帧堆栈 阅读全文

posted @ 2016-02-27 23:23 浅墨浓香 阅读(880) 评论(0) 推荐(0) 编辑

2016年2月21日

摘要: 23.1 基础知识 23.1.1 Windows下的软件异常 (1)中断和异常 ①中断是由外部硬件设备或异步事件产生的 ②异常是由内部事件产生的,可分为故障、陷阱和终止三类。 (2)两种异常处理机制:SEH和VEH(WindowsXP以上新引进) (3)结构化异常处理(SEH)是Windows操作系 阅读全文

posted @ 2016-02-21 19:46 浅墨浓香 阅读(1520) 评论(0) 推荐(0) 编辑

2016年2月11日

摘要: 22.6 API拦截的一个例子 22.6.1 通过覆盖代码来拦截API (1)实现过程 ①在内存中对要拦截的函数(假设是Kernel32.dll中的ExitProcess)进行定位,从而得到它的内存地址。 ②把这个函数的起始的几个字节保存在我们自己的内存中。 ③用CPU的一条JUMP指令来覆盖这个函 阅读全文

posted @ 2016-02-11 21:01 浅墨浓香 阅读(2128) 评论(0) 推荐(0) 编辑

2016年2月4日

摘要: 22.4 使用远程线程来注入DLL 22.4.1 概述 (1)远程线程注入是指一个进程在另一个进程中创建线程,然后载入我们编写的DLL,并执行该DLL代码的技术。其基本思路是通过CreateRemoteThread创建一个远程线程,并将LoadLibrary函数作为该线程函数来启动线程,同时将Dll 阅读全文

posted @ 2016-02-04 22:43 浅墨浓香 阅读(1088) 评论(0) 推荐(0) 编辑

摘要: 22.1 注入的一个例子(跨进程子类化窗口) ①子类化窗口可以改变窗口的行为,让发往该窗口的消息重新发到我们指定的过程来处理。但这种行为只能在本进程中(如A),对于从一个进程(如B)去子类化另一个进程(如A)时,会遇到无法跨越进程地址空间的边界问题。 ②上图,进程B试图调用SetWindowLong 阅读全文

posted @ 2016-02-04 00:20 浅墨浓香 阅读(2004) 评论(0) 推荐(0) 编辑

上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 38 下一页