在MASM中,编辑资源脚本文件(.rc)是一个很不容易的事情,当然可以用VC中的资源编辑器来编写,但是会产生不少VC附带的自己的头文件等等还有一些没有用的注释。当然生成.res文件后,省去MASM中的编译过程还是简单。
但是还是有一个很好的资源编辑器:MinGW Developer Studio下带的Resource editor,优点是:1、生成的脚本代码短小精悍;2、可以直接在MASM中编译使用。
以一个罗云彬MASM32编程书上的一个例子说明一下:
用Chapter05\Control的rc文件编译的RES文件,在VC下(无论VS6.0或.net2003)均有乱码现象,原来例子中用MASM方法编译的是英文语言界面,所以在此情况下首先要修改语言类型。否则直接保存回.rc中文都会是?号。然后你可以另存为rc文件。请看看下面的自动生成的部分脚本代码:
这些绝大多数是VC编译时必须的,但对于MASM是不必要的。
想象一下,每次都要对rc文件作很大的修改才能在MASM下编译或在别的平台上编译,颇为痛苦.......
但是Resource editor的表现是绝对的精悍,就像Dreamweaver和FrontPage对于网页编辑的不同表现一样,它的脚本代码不但简单,直白,而且可以直接在MASM下编辑使用,比如上面的例子,我将现成的rc文件用Resource editor打开(这在VC下是不可能的,因为会提示不能识别...等等),则会有个非常棒的资源编辑器打开,如下图:
而其脚本代码则没有任何多余的东东,我在编辑器中对Control.rc做了修改,同时在Control.asm中加入了如下代码:
IDC_ABOUT equ 111
szCaption db '资源界面好工具',0
szText db '看看,制作能让MASM编译的界面多简单啊!',0
;********************************************************************
; 新增按钮
;********************************************************************
.elseif ax == IDC_ABOUT
invoke MessageBox,hWnd,offset szText,offset szCaption,MB_OK
szCaption db '资源界面好工具',0
szText db '看看,制作能让MASM编译的界面多简单啊!',0
;********************************************************************
; 新增按钮
;********************************************************************
.elseif ax == IDC_ABOUT
invoke MessageBox,hWnd,offset szText,offset szCaption,MB_OK
再回到MASM下重新编译,运行如下图:
相当方便简单吧!呵呵!