能力值:
( LV2,RANK:10 )
|
-
-
2 楼
楼主,我什么也没看见啊
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
刚才没传上附件,现在可以了。呵呵。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
没钱。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
正式会员下载是不是就不扣这2币了?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
穷人一个 水平不怎么的 但是没心学
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
谢谢楼主分享
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
早就有了,书还不错
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
等转正了再回来学习 呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
还是等转正吧。
就快了,我现在每天工资是5KX
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
是的,你说对了。好好努力吧!
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
呵呵,升级的路真漫长啊。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
自己顶一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
谢谢分享 刚啃完王爽汇编 正好看这个
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
穷人,等转正了再下。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
前言
从windows出现开始,汇编语言似乎在慢慢地销声匿迹,但本书可以让人放弃这个观点,其实在Win32环境下,汇编语言依然强大,
Why——为什么选择Win32汇编
选择Win32汇编的理由是什么?
在DOS时代,学习汇编就是学习系统底层变成的代名词,仅要成为一名入门级的汇编程序员,就需要学习从CPU结构、CPU工作方式、
各种硬件的编程方法到DOS工作方式等范围很广的知识。随着Windows时代的到来,Windows像一堵巨大的墙,把我们和计算机的硬件隔离离开
对于DOS的汇编程序员来说,就像在一夜之间,我们发现自己曾经学过的几乎所有的东西都被Windows封装到内核中去了,由于保护模式的存在
,我们又无法像在DOS下那样闯入系统内核为所欲为。在Windows下用任何语言编程都必须遵循Windows的规范,汇编也不例外,也就是说,
汇编不在是有一种“有特权”的语言,面对汹涌而来的Visual C++,Visual Basic,PowerBuilder和Java等各个领域的猛将,从DOS时代“为所
欲为”的“系统警察”岗位下岗,在其他领域又没有一技之长,汇编语言似乎失去了生存的意义,很多人在DOS转向Windows的时候放弃了汇编
语言。
但是经过短期的失落,摆正了自己在超做系统中的位置,我们发现从“系统警察”转换到遵循Windows规范的“好市民”后,汇编语言又慢
慢地在这个世界流行起来了,毕竟,不能为所欲为也可以有好的一面,我们可以不必再考虑一些老大难的问题,如程序运行时会面对什么样的
显示卡,如何驱动不同的打印机,内存不够了如何用磁盘交换,等等,我们也可以在了解更少硬件知识的情况下就可以掌握Win32的汇编编程
。而且,我们惊喜的发现,做了“好市民”以后,我们反而拥有了和其他揄扬同样的权利——为了做图形和界面等方面的功能,汇编程序员
在DOS时代连做梦都在羡慕C语言庞大的函数库,而现在,Windows为我们提供了比这还要多得多的函数, 以至于其它大部分语言可以做出来的
东西,汇编都可以做出来,而其他语言做不到的东西,汇编照样可以做! 所以这就是理由之一:Win32汇编可以当作一种功能强大的开发语言
使用,使用它完全可以开发出大型的软件来。
正因为Win32汇编看上去不在那么低级,于是有读者曾经提出:Win32汇编讲的都是用API来写程序,和高级语言差不多,以前在DOS下使用的
中断什么的都不能用,所以没有什么新奇的了。还有读者认为本书只不过是MSDN的汇编版本而已。言下之意就是:学汇编就是为了了解高级
语言底下层的功能,但是现在Win32汇编却使用和C++等语言相同的API接口,既然和高级语言处于同一个级别,我们为什么还要去和机器指令
打交道呢?还不如去学Visual C++方便。
但是我们可以这样问一问自己:
问:DOS汇编中我们为什么用中断功能?
答:为了使用DOS内核提供的功能。
问:在DOS中我们常常自己用操作I/O端口的方法读写硬盘或操作显卡吗?
答:不,我们用系统提供的int 13h 和int 10h.
......
刚才利用了一点时间把 前言给手打出来了 一起学习下
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
谢谢,楼上的兄弟,我会把目录贴出来的。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
第1章 背景知识 1
1.1 Win32的软硬件平台 1
1.1.1 80x86系列处理器简史 1
1.1.2 Windows的历史 3
1.1.3 Win32平台的背后——
1.1.3 Wintel联盟 5
1.2 Windows的特色 6
1.3 必须了解的基础知识 7
1.3.1 80x86处理器的工作模式 7
1.3.2 Windows的内存管理 9
1.3.3 Windows的特权保护 17
第2章 准备编程环境 21
2.1 Win32可执行文件的
2.1 开发过程 21
2.2 编译器和链接器 23
2.2.1 MASM系列 23
2.2.2 TASM系列 27
2.2.3 其他编译器 28
2.2.4 MASM,TASM还是
2.2.4 NASM 29
2.2.5 我们的选择——MASM32
2.2.5 SDK软件包 30
2.3 创建资源 31
2.3.1 资源编译器的使用 31
2.3.2 所见即所得的资源编辑器 32
2.4 make工具的用法 34
2.4.1 make工具是什么 34
2.4.2 nmake的用法 35
2.4.3 描述文件的语法 36
2.5 获取资料 39
2.5.1 Windows资料的来源 40
2.5.2 Intel处理器资料 42
2.6 构建编程环境 42
2.6.1 IDE还是命令行 42
2.6.2 本书推荐的工作环境 43
2.6.3 尝试编译第一个程序 44
第3章 使用MASM 46
3.1 Win32汇编源程序的结构 46
3.1.1 模式定义 48
3.1.2 段的定义 50
3.1.3 程序结束和程序入口 53
3.1.4 注释和换行 53
3.2 调用API 54
3.2.1 API是什么 54
3.2.2 调用API 56
3.2.3 API参数中的等值定义 60
3.3 标号、变量和数据结构 62
3.3.1 标号 62
3.3.2 全局变量 64
3.3.3 局部变量 65
3.3.4 数据结构 68
3.3.5 变量的使用 70
3.4 使用子程序 74
3.4.1 子程序的定义 75
3.4.2 参数传递和堆栈平衡 76
3.5 高级语法 79
3.5.1 条件测试语句 79
3.5.2 分支语句 80
3.5.3 循环语句 82
3.6 代码风格 85
3.6.1 变量和函数的命名 85
3.6.2 代码的书写格式 87
3.6.3 代码的组织 88
初级篇
第4章 第一个窗口程序 89
4.1 开始了解窗口 89
4.1.1 窗口是什么 89
4.1.2 窗口界面 90
4.1.3 窗口程序是怎么工作的 92
4.2 分析窗口程序 98
4.2.1 模块和句柄 98
4.2.2 创建窗口 100
4.2.3 消息循环 107
4.2.4 窗口过程 109
4.3 窗口间的通信 114
4.3.1 窗口间的消息互发 114
4.3.2 在窗口间传递数据 117
4.3.3 SendMessage和
4.3.3 PostMessage函数的区别 118
第5章 使用资源 119
5.1 菜单和加速键 120
5.1.1 菜单和加速键的组成 120
5.1.2 菜单和加速键的资源定义 121
5.1.3 使用菜单和加速键 126
5.2 图标和光标 138
5.2.1 图标和光标的资源定义 139
5.2.2 使用图标和光标 139
5.3 位图 143
5.3.1 位图简介 143
5.3.2 在资源中定义位图 144
5.4 对话框 145
5.4.1 对话框简介 145
5.4.2 对话框的资源定义 147
5.4.3 使用对话框 149
5.4.4 在对话框中使用子
5.4.4 窗口控件 152
5.5 字符串资源 174
5.6 版本信息资源 176
5.6.1 版本信息资源的定义 176
5.6.2 在程序中检测版本信息 179
5.7 二进制资源和自定义资源 180
5.7.1 使用二进制资源 180
5.7.2 使用自定义资源 181
第6章 定时器和Windows时间 183
6.1 定时器 183
6.1.1 定时器简介 183
6.1.2 定时器的使用方法 184
6.2 Windows时间 188
6.2.1 Windows时间的获取和
6.2.1 设置 188
6.2.2 计算时间间隔 189
第7章 图形操作 191
7.1 GDI原理 191
7.1.1 GDI程序的结构 192
7.1.2 设备环境 195
7.1.3 色彩和坐标 201
7.2 绘制图形 203
7.2.1 画笔和画刷 211
7.2.2 绘制像素点 214
7.2.3 绘制图形 214
7.2.4 绘图模式 218
7.3 创建和使用位图 220
7.3.1 一个使用位图的时钟例子 220
7.3.2 创建和使用位图 230
7.3.3 使用设备无关位图 231
7.4 块传送操作 233
7.4.1 块传送方式 233
7.4.2 块传送函数 234
7.5 区域和路径 239
7.5.1 使用区域 239
7.5.2 使用路径 241
界面篇
第8章 通用对话框 243
8.1 通用对话框简介 243
8.2 使用通用对话框 250
8.2.1 “打开”文件和“保存”
8.2.1 文件对话框 250
8.2.2 字体选择对话框 252
8.2.3 “颜色选择”对话框 254
8.2.4 “查找”和“替换”文本
8.2.4 对话框 255
8.2.5 “页面设置”对话框 258
8.2.6 “浏览目录”对话框 259
第9章 通用控件 260
9.1 通用控件简介 260
9.1.1 通用控件的分类 260
9.1.2 使用通用控件 262
9.2 使用状态栏 266
9.2.1 创建状态栏 271
9.2.2 状态栏的控制消息 272
9.2.3 在状态栏上显示菜单
9.2.3 提示信息 274
9.3 使用工具栏 275
9.3.1 创建工具栏 282
9.3.2 工具栏的控制消息 285
9.3.3 工具栏的通知消息 288
9.4 使用Richedit控件 291
9.4.1 创建Richedit控件 303
9.4.2 Richedit控件的控制消息 305
9.4.3 Richedit控件的通知消息 314
9.5 窗口的子类化 315
9.5.1 什么是窗口的子类化 315
9.5.2 窗口子类化的实现 316
9.6 控件的超类化 322
9.6.1 什么是控件的超类化 322
9.6.2 控件超类化的实现 323
系统篇
第10章 内存管理和文件操作 327
10.1 内存管理 327
10.1.1 内存管理基础 327
10.1.2 内存的当前状态 328
10.1.3 标准内存管理函数 330
10.1.4 堆管理函数 335
10.1.5 虚拟内存管理函数 339
10.1.6 其他内存管理函数 344
10.2 文件操作 345
10.2.1 Windows的文件I/O 345
10.2.2 创建和读写文件 346
10.2.3 查找文件 357
10.2.4 文件属性 364
10.2.5 其他文件操作 366
10.3 驱动器和目录 367
10.3.1 逻辑驱动器操作 368
10.3.2 目录操作 371
10.4 内存映射文件 373
10.4.1 内存映射文件简介 374
10.4.2 使用内存映射文件 376
第11章 动态链接库和钩子 384
11.1 动态链接库 384
11.1.1 动态链接库的概念 384
11.1.2 编写动态链接库 385
11.1.3 使用动态链接库 391
11.1.4 动态链接库中的数据
11.1.4 共享 400
11.1.5 在VC++中使用动态
11.1.5 链接库 401
11.2 Windows钩子 404
11.2.1 什么是Windows钩子 404
11.2.2 远程钩子的安装和使用 406
11.2.3 日志记录钩子 414
第12章 多线程 418
12.1 进程和线程 418
12.2 多线程编程 419
12.2.1 一个单线程的“问题
12.2.1 程序” 419
12.2.2 多线程的解决方法 423
12.2.3 与线程有关的函数 427
12.3 使用事件对象控制线程 431
12.3.1 事件 432
12.3.2 等待事件 433
12.3.3 进一步改进计数程序 434
12.4 线程间的同步 437
12.4.1 产生同步问题的原因 437
12.4.2 各种用于线程间同步
12.4.2 的对象 442
第13章 过程控制 450
13.1 环境变量和命令行参数 450
13.1.1 环境变量 450
13.1.2 命令行参数 453
13.2 执行可执行文件 458
13.2.1 方法一:Shell调用 458
13.2.2 方法二:创建进程 460
13.3 进程调试 469
13.3.1 获取运行中的进程句柄 469
13.3.2 读写进程的地址空间 475
13.3.3 调试API的使用 480
13.4 进程的隐藏 489
13.4.1 在Windows 9x中隐藏
13.4.1 进程 489
13.4.2 Windows NT中的远程
13.4.2 线程 491
第14章 异常处理 503
14.1 异常处理的用途 503
14.2 使用筛选器处理异常 504
14.2.1 注册回调函数 504
14.2.2 异常处理回调函数 506
14.3 使用SEH处理异常 510
14.3.1 注册回调函数 512
14.3.2 异常处理回调函数 513
14.3.3 SEH链和异常的传递 516
14.3.4 展开操作(Unwinding) 518
应用篇
第15章 注册表和INI文件 522
15.1 注册表和INI文件简介 522
15.2 INI文件的操作 523
15.2.1 INI文件的结构 523
15.2.2 管理键值 525
15.2.3 管理小节 532
15.2.4 使用不同的INI文件 533
15.3 对注册表的操作 534
15.3.1 注册表的结构 534
15.3.2 管理子键 536
15.3.3 管理键值 547
15.3.4 子键和键值的枚举 548
15.3.5 注册表应用举例 551
第16章 WinSock接口和网络编程 555
16.1 Windows Socket接口简介 556
16.2 Windows Socket接口的
16.2 使用 559
16.2.1 IP地址的转换 559
16.2.2 套接字 563
16.2.3 网络应用程序的一般
16.2.3 工作流程 566
16.2.4 监听、发起连接和
16.2.4 接收连接 569
16.2.5 数据的收发 572
16.2.6 一个最简单的TCP服务
16.2.6 端程序 575
16.3 TCP应用程序的设计 581
16.3.1 通信协议和工作线程
16.3.1 的设计 581
16.3.2 TCP聊天室例子——
16.3.2 服务器端 591
16.3.3 TCP聊天室例子——
16.3.3 客户端 598
16.3.4 以非阻塞方式工作的
16.3.4 TCP聊天室客户端 606
16.3.5 其他常用函数 617
第17章 PE文件 621
17.1 PE文件的结构 621
17.1.1 概论 621
17.1.2 DOS文件头和DOS块 622
17.1.3 PE文件头(NT
17.1.3 文件头) 624
17.1.4 节表和节 629
17.2 导入表 644
17.2.1 导入表简介 644
17.2.2 导入表的结构 646
17.2.3 查看PE文件导入表举例 649
17.3 导出表 651
17.3.1 导出表的结构 652
17.3.2 查看PE文件导出表举例 655
17.4 资源 658
17.4.1 资源简介 658
17.4.2 资源的组织方式 659
17.4.3 查看PE文件中的资源
17.4.3 列表举例 662
17.5 重定位表 667
17.5.1 重定位表的结构 667
17.5.2 查看PE文件的重定
17.5.2 位表举例 670
17.6 应用实例 672
17.6.1 动态获取API入口地址 672
17.6.2 在PE文件上添加执行
17.6.2 代码 679
第18章 ODBC数据库编程 688
18.1 基础知识 688
18.1.1 数据库接口的发展历史 688
18.1.2 SQL语言 691
18.1.3 ODBC程序的流程 693
18.2 连接数据库 694
18.2.1 连接和断开数据库 694
18.2.2 连接字符串 700
18.3 数据的管理 703
18.3.1 执行SQL语句 703
18.3.2 执行结果的处理 708
18.3.3 获取结果集中的数据 710
18.3.4 事务处理 715
18.4 数据库操作的例子 717
18.4.1 结果集处理模块 718
18.4.2 例子的源代码 723
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
自己顶一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
穷人一个 水平不怎么的 但是没心学
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
进来学习一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
没钱。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
等有钱了一定来下
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
谢谢楼主分享
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
谢谢楼主分享
|
|
|