(译)win32asm实例-0

原创 2002年03月18日 19:03:00

  这个教程写得非常好,希望你能喜欢。



-译者



Mosaic tutorial拼图游戏教程





Introduction介绍



In this lesson you will create a simple mosaic game. You probably know this kind of puzzles. An image or a matrix of numbers have to be placed in the right order by shuffeling the pieces into place. This lesson will teach you how to create this game step by step. It is useful to read the tutorials first before you start with this lesson. It's level is aimed at the beginner, everything is explained.



在本教程中,你将创建一个简单的拼图游戏。你可能知道这种字画迷。一幅画或一个数字矩阵必须由从一个地方拖到另一个地方来摆好顺序。本教程将一步步教你怎样创建这个游戏。在开始这个教程前,读一读前面的教程(win32asm教程-译者注)是很有帮助的。难度面向初学者,每件事都会得到解释。








Prologue前言



This lesson is aimed at the beginner in asm. Every step in creating the program is explained. It is not just source code with comments, but it teaches you how to build up a program from scratch. My advice is to fully read the tutorial, and try to make the program yourself. This lesson is quite long but it will help you very much if you read it all.



本教程着眼于asm的初学者。程序创建中的每一步都会解释。这不仅仅是带有注释的源代码,而是教你如何白手起家的创建一个程序。我的建议是通读前面的教程,并且试着自己来写程序。本教程相当的长,但如果你都读了的话将对你很有益处。





Checklist清单



Make sure you have the following installed:



确保你安装了一下工具:



·         The masm32 package, version 6 with at least service pack 2 (win32asm.cjb.net)



·         A good resource editor. This is not necessary, but a lot easier to do it by hand. To make this lesson accessible for anyone, I'll explain how to write the resources by hand (they are simply text files), but if you know how to use a resource editor you can use that instead. Good resource editors are: Borland Resource Workshop* (protools.cjb.net) and the resource editor in Microsoft Visual Studio (Visual C++).



·         A resource compiler (rc.exe will do for hand written files and microsoft visual studio's resource editor, but not for BRW).



·         make sure that you have included the /masm32/bin folder and the paths of the other necessairy tools included in your path.



 



·         masm32包,版本6加上至少sp2



·         一个好用的资源编辑器。这不是必须的,但用它做会更加容易。为了使得本教程对所有人都可用,我将用手工的办法来解释如何写资源(它们仅仅是文本文件)。但如果你知道怎样使用资源编辑器,你也可以用它代替。好的资源编辑器有:Borland Resource Workshopprotools.cjb.net)和微软Visual StudioVisual C++)中的资源编辑器。



·         一个资源编译器(rc.exe可以用于手工写的文件和微软Visual Studio的资源编辑器,但不可以用于BRW



·         确保你把/masm32/bin文件夹和其他必要工具的路径包含在你的路径(path环境变量)中了。



* BRW is no longer supported by Borland so you can download this legally (although I don't know for sure), but you need the brc32 tool to compile it (their resoure format is somewhat different from microsoft's, so using rc.exe wouldn't work). This tool is included in the TASM package but you cannot download this legally.



*BRW已经不再由Borland支持因而你可以合法地下载(虽然我不确知),但你需要brc32工具来编译它(它们地格式和微软地有些不同,因而使rc.exe工作不正常),这个工具包含在TASM包中,但你不能合法地下载它。





Glossary小字典



As this is a lesson for the real beginners, this list of definitions can be useful. Read them if you don't know them already, it will help you understand the rest of the lesson.



因为这是一本面向初学者的教程,这个定义列表可能会有用。如果你还不知道它们,读一读吧。它将对你理解后面的课程很有帮助。





































Resources



A resource is data that is stored in the program file. A resource can be an icon, a table with strings, menu, dialog, bitmap, user defined data etc. The resources are first defined in a .rc file. This is a simple text file which you can write manually but it's much easier to use a resource editor like borland resource workshop or the editor in visual studio. The resources are then compiled into a binary file (.res). This file is then linked (yes with link) to the executable. Resources are accessed by their IDs. These IDs can be set in the resource file and in your source code you use the same ID to access the resource.



Owner-drawn windows



Owner-drawn windows are windows that are drawn by the program instead of the system. In this lesson a static control is used as an owner-drawn window. A WM_DRAWITEM message is sent to the window when the control needs to be drawn.



Local variables



Local variables are variables (i.e. data) that is used only in a specific procedure. Local data is saved while the procedure is running, but deleted afterwards (it is stored on the stack). Local variables are declared with LOCAL at the start of a procedure:
SomeProc proc ....
LOCAL localvar:DWORD



资源



资源是储存在程序文件中的数据。一个资源可以是图标,字符串的表格,菜单,位图,用户定义的数据等。资源先在rc文件中定义。这是一个你可以手工写的简单纯文本文件但用像Borland Resource WorkshopVisual Studio中的工具会更简单。然后,资源被编译为二进制文件(.res)。再后,文件被链接(是的,用链接器)到可执行文件中。资源通过它们的ID(s),存储。这些ID可以在资源文件中设置而且在你的源代码中,你使用相同的ID来读取资源。



Owner-drawn 窗口



Owner-drawn 窗口是由程序代替系统画出的窗口。在本教程中,一个静态控件被用作Owner-drawn窗口。WM_DRAWITEM消息在控件需要画出的时候发送给窗口



局部变量



局部变量仅仅是用于指定过程的变量(就是数据)。局部变量在过程运行时被保存但之后就删除了(他储存在栈中)。局部变量在过程开始处用LOCAL声明:
SomeProc proc ....
LOCAL localvar:DWORD

编译原理之LR(0)分析算法的c实现

LR(0)分析器的构造算法如下: 对一个文法构造了它的LR(0)分析表后就可以在LR分析器的总控程序(驱动程序)控制下对输入串进行分析,即根据输入串的当前符号和分析栈的栈顶状态查找分析表应采取的动作...
  • u014771617
  • u014771617
  • 2014年11月02日 17:44
  • 2516

编译原理(九) LR(0)文法分析法(算法描述和C++代码实现)

概念梳理最左推导:每一步替换最左边的非终结符 最右推导:每一步替换最右边的非终结符,最右推导称为规范推导 短语:令G是一个文法,S是文法的开始符号,假定αβδ是文法G的一个句型,如果有 S⇒∗αA...
  • qq_24451605
  • qq_24451605
  • 2015年12月02日 19:58
  • 5525

编译原理 实验1 PL/0语言词法分析

PL/0语言词法分析 一、 实验目的 通过完成词法分析程序,了解词法分析的过程。编制一个读单词程序,对PL/0语言进行词法分析,把输入的字符串形式的源程序分割成一个个单词符号,即基本保留字、标识符、常...
  • u011686226
  • u011686226
  • 2014年10月20日 22:54
  • 3285

Win32Asm小程序案例之显示行号的记事本

参考:1、http://blog.csdn.net/jhkdiy/article/details/5634519 本文主要为自己仿写带行号的记事本做一个记录! 一切从简!!! 一、程序开...
  • ll2323001
  • ll2323001
  • 2012年06月22日 21:29
  • 673

Win32Asm中使用ReadConsoleInput时遇到结构内存对齐

在控制台中使用ReadConsoleInput函数读取键盘事件时,发现访问KeyEvent.uChar.AsciiChar得到的字符跟输入的总是不一致。 比如从小键盘输入1,得到的是OO,输入2,得到...
  • u012344151
  • u012344151
  • 2013年10月27日 22:04
  • 549

Win32ASM && 变长参数的理解

C语言里面 提供了一些宏  可以使用变长参数   int MsgPrintf(INT dwszBuffer,TCHAR* szCaption,TCHAR* szFormat,...) { L...
  • bingghost
  • bingghost
  • 2012年03月20日 20:22
  • 703

Win32ASM学习[16] :乘除指令: MUL、IMUL、DIV、IDIV

----------------------------------------------------------------------------------------------------...
  • bingghost
  • bingghost
  • 2011年12月04日 19:29
  • 3226

win32 asm 贪食蛇

最近> 这本书看了一些章节了. 自从讲完GDI那章,往下就是通用对话框了. 通用对话框那章看起来很没意思,就跳着看了看.下一章是讲控件的,也没啥兴趣. 但是控件那章的窗口子类化,和窗口超类化倒是...
  • korekara88730
  • korekara88730
  • 2011年10月23日 18:12
  • 1015

Win32ASM学习[20]:子程序

关于函数调用约定 :函数调用约定 这是以前的一个求和函数的例子 ------------------------------------------------------------------...
  • bingghost
  • bingghost
  • 2011年12月05日 21:05
  • 496

Win32ASM学习[17]:条件跳转

----------------------------------------------------------------------------------------------------...
  • bingghost
  • bingghost
  • 2011年12月05日 18:46
  • 780
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(译)win32asm实例-0
举报原因:
原因补充:

(最多只允许输入30个字)