ltCtrlF5连接文件AltShiftF5构建AltF5编译、连接、运行CtrlShiftF5运行程序 RadAsm安装和配置现在对RadAsm应该有一点认识了吧下面介绍RadAsm的安装和环境的配置问题本节的最后用一个简单的小程序来测试我们的IDE是否配置妥当。
呵呵其实RadAsm根本不用安装下载到的是一个压缩包直接把它解压缩到一个文件夹中就可以了为了讲解的方便我以自己的配置为例系统是Win2000-ProRadAsm的版本是2.2.0.1我把RadAsm解压缩到FAsmRadASM22en文件夹中汇编编译器为Masm32V8.2下载后也是一个自解压文件我把它解压到FAsmmasm32文件夹中。
如果你下载了RadAsm的语言包则可以把它解压到RadAsm22en文件夹中。
好了安装RadAsm就是这样简单的了基本上没什么注意的地方。
现在讲讲RadAsm的配置进入RadAsm22en文件夹运行RadAsm.exe。
如果打开后是英文界面而你又想使用中文则可以通过菜单选项--语言选项选择简体中文然后单击Ok按钮来切换到中文界面下面的讲解都会以中文界面为准虽然这样做有可能会因为各中文翻译有所不同而造成中文显示不同但相信大家都能理解其中的意思。
我们首要的任务是配置MASM32单击菜单选项à路径设置在弹出的对话框中即可设置汇编编译器的路径最重要的是设置好masm32的路径只要该路径设置好整个开发环境就可以立即工作了。
可见RadAsm的安装和配置都很简单为了验证我们配置的环境能否正常工作下面做一个只显示一个对话框的程序来进行测试。
单击菜单文件à新建文件或按快捷键CtrlN在代码编辑窗口中键入如下的代码注意大小写敏感完成后我把代码保存为FbackupDoctest.asm然后再单击菜单构建。
如果大家还记得的话就知道这是编译、连接、运行一次搞定的选项当编译器路径没有配置错误程序即会进行编译、连接和运行。
至于汇编代码我就不解析了也不是本教程的范围。
如果编译期间发生了错误则可以在输出窗口中查看错误提示一般第一次的错误都是没有设置好Masm32的路径。
如果没错的话RadAsm会显示整个编译和连接的过程如上面的程序就输出如下信息FAsmmasm32BinML.EXE/c/coff/Cp/nologo/IFAsmmasm32IncludeFbackupDoctest.asmAssemblingFbackupDoctest.asm FAsmmasm32BinLINK.EXE/SUBSYSTEMWINDOWS/RELEASE/VERSION4.0/LIBPATHFAsmmasm32LibFbackupDoctest.objMicrosoftRIncremental Linker Version 5.12.8078 CopyrightCMicrosoft Corp 1992-1998.All rights reserved.ExecutingFbackupDoctest.exeMake finished.Total compile time 1693 ms可以从上面的示例知道用RadAsm集成开发环境一点也不比那些高级语言的IDE逊色用RadAsm也比自己手工编辑makefile要简单的多用它来练习Iczelion和罗云彬的教程是很不错的选择。
RadAsm开发标准窗口程序开发窗口程序主要有两种方式一种是创建标准的窗口程序这过程需要先填充WNDCLASSEX结构然后则是注册窗口--创建窗口--显示窗口--进入消息循环--对消息进行处理另一种更为常用的是基于对话框的窗口这种方式首先建立资源文件资源包括对话框、各类标准控件、图标、光标、BMP文件等如果用过Vc的朋友就一定不会陌生了建立好资源后将资源编译成RES文件然后在程序中使用各种资源这种方式的好处是省去了建立标准窗口的步骤而且对话框也是与用户进行交互的主要工具程序员也可以集中关注程序功能而不必花太多时间在界面上。
这一节主要讲怎样利用RadAsm建立工程编写标准的窗口程序。
为了更直观地讲解RadAsm的使用我们将建立一个基于对话框的RadAsm程序的工程。
你将会看到除了单击下一步外剩下需要做的只是粘贴代码按一下工具栏上的go all按钮来编译、连接、运行程序。
一切将会简单而易行。
好了我们现在打开RadAsm单击菜单文件--新建工程在弹出的对话框中设置好工程名和工程的类型如下图所示 由于工程类型的选择影响到整个程序的编译和连接所以大家在选择时不可以随便选一个类型就完事了。
下面列出几个常用的工程类型1如果要开发一个带有资源的标准窗口程序则选择Win32App类型假如程序要用到对话框、图标、菜单、快捷键等的话就应该选择这个类型。
2如果要开发一个没有资源的标准窗口程序则选择Win32AppNo Resource类型一般不用资源的情况很少但本节用来测试的例子就是一个没有资源的标准窗口程序。
3如果要开发一个Windows下的控制台程序则应选择Console APP。
4如果只开发一个Dll则应选择Dll project类型。
设置好后单击下一步按钮现在程序问你是否使用模板这要看具体做什么程序了如建立标准窗口程序可以使用WIN32EXE.tpl模板对话框程序可以使用DialogApp.tpl模板。
当然可以不使用模板我们现在就这么做在模板选项中单击None选项然后单击下一步按钮。
来到这里我们可以设置需要那些类型的文件和文件夹当然ASM文件是必选的其它有用的选项我们在讲解对话框程序时再述。
再次单击下一步按钮设置如上图所示。
好了大家都可以看到工程向导到这里就完成了单击完成按钮吧。
现在工程就建立完成了是不是很容易嗯现在看看开发窗口右边的工程管理器窗口我们刚才建立的工程生成了一个Test.Asm文件该文件就是主代码文件了我们可以双击它来打开代码编辑窗口现在把代码粘贴过来如果格式不好自己再整理一下考虑到有些朋友手头上暂时没有该例子的代码没有的朋友可以直接复制下面的文本到RadAsm的代码编辑窗口中.const IDD_DLG_MAIN equ 1000 IDC_EDT_OUTPUT equ 1003 IDC_EDT_FIRST equ 1001 IDC_EDT_SECOND equ 1002 IDC_BTN_OUTPUT equ 1007 IDC_BTN_EXITAPP equ 1008 .data szExitApp db你真的要退出程序吗0 szTitle db对话框程序0 将两个字符串合并为一个的格式化字符串。
szFormat dbss0 hInstance dd程序实例句柄 .code DlgProc proc uses ebx esi edi hwnduMsgwParamlParam 定义了三个局部数组类型均为字节型 LOCALszBuffer1256byte LOCALszBuffer2256byte LOCALszOutputBuf512byte mov eaxuMsg .if eaxWM_INITDIALOG 这里编写窗口初始化的代码下面是将三个局部数组清零 invoke RtlZeroMemoryaddrszBuffer1sizeofszBuffer1 invoke RtlZeroMemoryaddrszBuffer2sizeofszBuffer2 invoke RtlZeroMemoryaddrszOutputBufsizeofszOutputBuf.elseif eaxWM_COMMAND mov eaxwParam.if axIDC_EDT_FIRST 这里编写处理第一个文本框的代码.elseif axIDC_EDT_SECOND 这里编写处理第二个文本框的代码.elseif axIDC_BTN_OUTPUT 先获取两个文本框的文本分别保存在szBuffer1和szBuffer2中 然后通过格式化函数wsprintf将两个文本合并最后输出到第三个文本框中。
invoke GetDlgItemTexthwndIDC_EDT_FIRSTaddrszBuffer1sizeofszBuffer1 invoke GetDlgItemTexthwndIDC_EDT_SECONDaddrszBuffer2sizeofszBuffer2 invoke wsprintfaddrszOutputBufaddr szFormataddrszBuffer1addrszBuffer2 invoke SetDlgItemTexthwndIDC_EDT_OUTPUTaddrszOutputBuf .elseif axIDC_BTN_EXITAPP invoke SendMessagehwndWM_CLOSE00.endif .elseif eaxWM_CLOSE 这里处理程序退出代码invoke MessageBoxhwndaddr szExitAppaddr szTitleMB_ICONQUESTION or MB_YESNO.if alIDYES invoke EndDialoghwndNULL .endif .else mov eaxFALSE ret .endif mov eaxTRUE ret DlgProc endp 程序入口点 start 获取实例句柄 invoke GetModuleHandleNULL mov hInstanceeax 调用对话框函数来显示对话框。
invoke DialogBoxParamhInstanceIDD_DLG_MAINNULLoffset DlgProcNULL invoke ExitProcessNULL end start现在右
上一篇:
【物理课件】第四章 固体能带理论I4 3
下一篇:
计算机网络信息安全及防护策略研究