|
[Code] ParseDll=CppParse.dll Skip= Code= Const= Data= Macro= Struct= Label=
//这个段功能是用于查找并获取代码属性的。对汇编语言支持比较好。举个masm里的例子:Code=? endp,$Content$nbsp;proc意思是指识别为代码时检测任意名称命名的 proc,结束为 endp。例如: test proc ... endp 在masm工程中就会把此部分识别为代码。
[CodeBlock] 1={,},,,0 2= 3= 4= 5= 6= 7= 8= 9= 10= 11= 12= 13= 14= 15=
//代码块,用于标记可折叠的代码块。如1={,},,,0是指开始为“{”结束为“}”的就标记为代码块,将会自动在第一个开始的 { 那放一个可折叠的标记。后面各个逗号中选项大家可以参考帮助文件。最后的那个0是标志位。
[Api] Trig= Call=Masm\masmApiCall.api Const=Masm\masmApiConst.api Struct=Masm\masmApiStruct.api Word=Cpp\cppWord.api Message=Masm\masmMessage.api Type=Cpp\cppType.api inc=#include,"," lib=
//这是代码书写助手(Code write helpers)的功能。在你写代码时自动列出函数及在工具栏上显示函数。根据情况定义各个文件。
[Edit] CodeFiles=.c.cpp.h.rc.tpl.rad.def.api.nsi.dsm.
//这个段是配置编辑环境的,可在RadASM的选项中直接配置,我不全列出来了。基本上可以找个配置好的编译器文件照抄。主要注意上面的这条,这是你的编译器要使用的文件。
[Dialog] ...
//这是对话框编辑器中的选项,可以在选项中设置。照抄别的。
[Error] BookMark=3 nAsm=99 Identify=Error Skip=2
//根据作者给我的最新的2.2.0.6版本中的解释,各个关键词的含义如下:
BookMark=3
//这句对应2.2.0.6版本中代码编辑器选项中新增加的编译器错误处理部分的内容。可在选项中设置。
nAsm=99
//这句是指定编译器的。仅当不在 [Code] 段中具体设置编译器时才需考虑。各个含义如下:
MASM=1 TASM=2 FASM=3 GOASM=4 NASM=5 HLA=6 CPP=7 BCET=8 其他编译器=99
如果我们要配置新的非以上类型的编译器的话,就应设成象上面一样:nAsm=99
Identify=Error
//这句是指错误的关键字是什么。
Skip=2
//这句是指在输出窗口中发现了在 Identify 中指定的关键字内容后,在文件名前跳过的单词个数。如象下面这样的错误: Error E2378 test.cpp 26: Return statement missing ; …… 就会跳过前面的 Error 和 E2378 这两个词后定位到文件名上。这样 RadASM 就能正确跳到出错行了。
[Paths] $A=C:\Lcc $B=$A\Bin $D=$R\AddIns $H=masm32\Help $I=$A\Include $L=$A\Lib $P=$R\Lcc\Projects $S=$R\Lcc\Sniplets $T=$R\Lcc\Templates $M=$R\Lcc\Macro $E=C:\Ollydbg
//这个段是路径设置,各个标志与设置路径选项中对应为:$A->App:,编译器的安装路径;$B->Bin:,编译、连接、资源编译等程序的路径。其它的我就不讲了,比较简单。只是注意$R是指RadASM的安装路径。如你的RadASM安装在E:\RadASM,$R就指这个目录。这些标志可在下面的工程配置中使用。
[MakeFiles] 0=.rap 1=.rc 2=.cpp 3=.obj 4=.res 5=.exe 6=.def 7=.dll 8=.txt 9=.lib 10=.mak 11=.c 12=.com 13=.ocx 14=.idl 15=.tlb
//这个段是用于在创建工程时每个工程中所包含的文件类型。记住上面各个序号对应的文件类型,后面要用到。
[Project] Type=Win32 App,Console App,Dll Project,Ocx Project,LIB Project,Win32 App (no res),Dll Project (no res),Ocx Project (no res) Files=cpp,h,Rc,Def,Txt,Mak,dsm,idl Folders=Bak,Mod,Res MenuMake=编译资源脚本,编译,连接,构建,构建并运行,运行,在调试器中运行,全部构建并运行,编译模块 Group=1 GroupExpand=1
//终于接近最关键的部分了。这个段是设置你的编译器所支持的编译程序类型等。在Type后面定义的是工程类型,名字将作为下面每个具体工程配置段的关键字。Files后面是指工程中所用到的文件类型,用扩展名表示。Folders后面是指出建立工程时在新建的工程目录下有哪些子目录可用。Bak目录用于备份你的每次修改;Mod目录我不太清楚,大概是用于模块(module)的目录,基本没选过这个目录。Res目录是用来保存你的资源文件的。MenuMake后面是指在RadASM构建菜单下的子菜单中显示的项目。后面的Group和GroupExpand是用来定义工程组的,照抄就行了。
[MakeDefNoProject] MenuMake=1,1,1,1,1,1,1,0,0 1=rsrc.res,O,$D\RC.EXE /v,rsrc.rc 2=$.obj,O,$B\LCC.EXE /O /unused /c /errout=error.txt /I"$I",$.cpp 3=$.exe,O,$B\LCCLNK.EXE /s /SUBSYSTEM WINDOWS,$.obj,$.res 4=0,0,,$.exe 5=rsrc.obj,O,$D\CVTRES.EXE,rsrc.res 6=*.obj,O,$B\LCC.EXE /O /unused /c /errout=error.txt /I"$I",*.cpp 7=0,0,"$E\OllyDbg",$.exe 11=rsrc.res,O,$D\RC.EXE /v,rsrc.rc 12=$.obj,O,$B\LCC.EXE /g2 /O /unused /c /errout=error.txt /I"$I",$.cpp 13=$.exe,O,$B\LCCLNK.EXE /SUBSYSTEM WINDOWS,$.obj,$.res 14=0,0,,$.exe 15=rsrc.obj,O,$D\CVTRES.EXE,rsrc.res 16=*.obj,O,$B\LCC.EXE /g2 /O /unused /c /errout=error.txt /I"$I",*.cpp 17=0,0,"$E\OllyDbg",$.exe
//这里是默认设置,就是你不在RadASM中建立工程,只用RadASM打开源文件执行编译时的配置。这里和下面一段可说是最重要的部分了,请注意看,我一条条的讲解,尽量说的清楚点。先说一下可能用到的几个特殊字符的含义: $:从RadASM编辑器的最顶部标题栏中获取的不带扩展名的文件名。如打开test工程下的名为test.cpp的文件,这里的$就相当于test,就等于你不带扩展名的文件名称。下面会详细说明。 |:这个符号将在实际编译工程时替换为“,”(逗号)。如$D\RC.EXE /v,rsrc.rc|test.rc 实际编译时就会是这样(假定RadASM装在E盘根目录下):E:\RadASM\Addins\RC.EXE /v rsrc.rc,test.rc *:这个符号在编译模块(moudle)时使用。 MenuMake=1,1,1,1,1,1,1,0,0,0 这一条的意思是在构建菜单上可用的子菜单项目。我们来看一下上面的Project段中的MenuMake: MenuMake=编译资源脚本,编译,连接,构建,构建并运行,运行,在调试器中运行,全部构建并运行,编译模块 我们数一下,每个逗号分隔的算一个项目,共有9个。再看MenuMake=1,1,1,1,1,1,1,0,0,0 共有9个。这里个数无所谓,1是指对应的子菜单激活,0是不激活。这样MenuMake=1,1,1,1,1,1,1,0,0,0 等同于 MenuMake=编译资源脚本,编译,连接,构建,构建并运行,运行,在调试器中运行 共7个子菜单激活。 MenuMake=1,1,1,1,1,1,1,0,0 下面的1到17是编译选项,其中1到7是编译为Release(发行版)时的设置,11到17是指编译为Debug(调试版)时的设置。这里只说1到7的含义,11到17与1到7的类似。首先说一下各个序号的含义:1是指资源编译选项;2是指编译选项;3是指连接选项;4是指运行编译好的程序;5是用于CVTRES的,转换res文件到obj文件;6是编译模块选项;7是指在调试器中运行。1到7的含义如下:
1=rsrc.res,O,$D\RC.EXE /v,rsrc.rc
//这条用于编译资源,用逗号分隔每个项。rsrc.res 是指在执行编译前如果有这个文件就先删掉。O(注意这里不是0,是大写的字母O)是指在RadASM的输出窗口中显示所有执行命令行时的信息。如果这里是大写字母C,则是指在控制台中显示信息,不在输出窗口中显示。其它两个参数OT和CT与O和C含义类似。$D\RC.EXE /v 是指执行RadASM的Addins目录下的RC.EXE来编译后面的rsrc.rc到rsrc.res。/v是RC.EXE的命令行选项。LCC自带有一个资源编译程序,我原来是这样配置的:1=$.res,O,$B\LRC.EXE /v,$.rc 这里的$是指从RadASM编辑器的最顶部标题栏中获取的不带扩展名的文件名。如我打开一个工程中的文件,RadASM的顶部标题显示如下: RadASM - dialog - [E:\RadASM\Lcc\projects\dialog\dialog.cpp] 此时$取的内容就是 dialog.cpp 中的 dialog (注意:在RadASM中新建一个工程时有两个选项:一个是工程名称,一个是工程说明。打开一个工程时若不打开任何文件的话,在RadASM的顶部显示的是工程说明的内容,但此时你进行编译的话RadASM取的是工程名称。如我建的工程名称是dialog,工程说明是对话框示例,打开这个工程不打开任何文件时RadASM顶部显示的就是RadASM - 对话框示例,但在编译工程时$还是用的工程名称dialog)。这样如果编译上面的示例工程的话,1=$.res,O,$B\LRC.EXE /v,$.rc 就相当于这样(假定你的LCC编译器的目录放在放在E盘的根目录下,如:E:\LCC,这里的$B是从上面的[Paths]段中来的,你配置好了的话$B就等同于E:\LCC\Bin目录): 1=dialog.res,O,E:\LCC\Bin\LRC.EXE /v,dialog.rc 为什么没再用LCC原来自带的资源编译器呢?主要是我配置好后测试时,我明明在对话框中选的是宋体,9号,可编译后的程序按钮上显示的不知是什么字体,而且还是个斜体。搞得我还以为那里弄错了,查了半天。后来看LCC的用户手册,才知道它的资源编译器还不支持字体,说正在改进中。为此,我就放弃了它的资源编译器,还是用微软的吧。这里注意要把RC.EXE复制到你RadASM的Addins目录下。如果你是用我做的汉化版的话,这一步可省略。
2=$.obj,O,$B\LCC.EXE /O /unused /c /errout=error.txt /I"$I",$.cpp
//这条用于编译程序,$.obj,O 两个与上面讲的类似,也是先删除你所做工程名字.obj,在输出窗口中输出信息。$B\LCC.EXE /O /unused /c /errout=error.txt /I"$I" 是编译选项,后面的/I"$I"是查找include目录用的。$I就是LCC下的include目录,如LCC装在E盘根目录的话(下面我再讲的时候都默认你的RadASM和LCC都装在E盘根目录下),$I就代表E:\LCC\include目录。其实上面这句在下面具体定义的工程项中还可以这样写: 2=3,O,$B\LCC.EXE /O /unused /c /errout=error.txt /I"$I",2 这里与上面那句不同的地方就是把$.obj换成了3,$.cpp换成了2。为什么可以这样换?这是根据[MakeFiles]段中定义的文件类型对应的序号来的。看一下[MakeFiles]段,其中 2=.cpp 3=.obj 这里的替换后的2和3就是对应你工程名的cpp和obj文件,与$.cpp和.obj功能相同。
3=$.exe,O,$B\LCCLNK.EXE /s /SUBSYSTEM WINDOWS,$.obj,$.res
//这条用于连接程序。各条对应情况与前面的两条类似。假设你象我一样测试的是E:\RadASM\Lcc\Projects\dialog\dialog 下的dialog工程,$B\LCCLNK.EXE /s /SUBSYSTEM WINDOWS,$.obj,$.res执行后效果是这样: E:\Lcc\Bin\LCCLNK.EXE /s /SUBSYSTEM WINDOWS "dialog.obj" "dialog.res" 同样你也可以在具体项目定义中把$.exe对应换成5,$.res对应换成4。
4=0,0,,$.exe
//这条命令是运行编译好的程序。这里的0,0(注意是数字0),照抄别的就可以了。只是如果编译的是控制台程序的话,为防止运行时看不到效果,可这样写:4=0,0,$D\RunStub,$.exe 这里的RunStub.exe是我上次发现在RadASM中运行dos程序看不到效果,就跟RadASM的作者说了一下,他提供的这个小工具,现在已包含在masm的Projects目录中了。把它复制到Addins目录即可。另外你也可以用LCC的Bin目录下的一个rundos.exe小工具,不但支持按任意键退出,还可显示执行时间,推荐。可以在控制台工程中这样配置:4=0,0,$B\rundos.exe,$.exe
上一页 [1] [2] [3] 下一页 |