资源描述:
《delphi定义的条件编译介绍说明》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、delphi反编译:DELPHI定义的条件编译介绍说明疯狂代码http://www.crazycoder.cn/ĵ:http:/www.crazycoder.cn/Delphi/Article66671.html经常看到些里面用到如:{$defwin16},{$defwin32}的类信息可是这些好像并没有定义不知道在哪里可以找到这些条件编译定义或者是介绍说明具体讲述win16代表什么WIN32代表什么VER140代表什么?{$IFDEFWIN32}—这可不是批注对于Delphi来说﹐左右大括号的间内
2、容是批注﹐然而「{$」(左括号后紧接着货币符号)对于Compiler(编译器)而言并不是批注﹐而是写给Compiler看特别指示应用时机和场合Delphi中有许许多多CompilerDirectives(编译器指令)﹐这些编译指令对于我们发展有何影响呢?它们又能帮我们什么忙呢?CompilerDirective对开发影响和助益,可以从以下几个方向来讨论:?协助除错?版本分类?重用和管理?设定统执行环境协助除错稳健熟练设计师经常会在开发应用系统过程中﹐特别加入些除错或者回馈验算﹐这些除错对于软件Sof
3、tware品质提升有极其正面功能然而开发完成正式版本中如果不需要这些额外话﹐要想在堆中找出哪些是除错用并加以删除或设定为批注﹐不仅累人﹐而且容易出错﹐况且日后维护时这些除错还用得着此时如果能够应用像是$IFDEFCompilerDirectives﹐就可以轻易指示Delphi要/不要将某段编进执行文件中同时﹐Compiler本身也提供了些检查开关﹐可以预先对中可能问题提醒设计师注意﹐同样有助于撰写正确版本分类除了上述除错版本/正式版本分类的外﹐对于像是「试用版」「普及版」「专业版」版本分类﹐也可以经
4、由CompilerDirective使用﹐为最后产品设定区别使用权限其它诸如「中文版」「日文版」「国际标准版」等全球版本管理方面﹐同样也可以视需要指示Delphi特别连结哪些资源档或者是采用哪些适当以上两则例子中﹐各版本间只需共享同份代码即可Delphi1.0和Delphi2.0有许多区别的处﹐组件资源文件(.DCR)即是其中例﹐两者档案格式并不兼容﹐在您读过本文的后﹐相信可以写出这样﹐指示Delphi在区别版本采用适当资源文件以利于组件安装{$IFDEFWIN32}{$RXXX32.DCR}{$E
5、LSE}{$RXXXX16.DCR}{$EDNIF}重用和管理经过前文讨论后﹐相信你已经不难看出CompilerDirectives在管理上应用价值对于原始重用和管理﹐也是CompilerDirectives使得上力地方.举例来说:Pascal-Style串是Delphi1.0和Delphi2.0的间明显差异﹐除了原先短串的外﹐Delphi2.0的后还多了更为方便使用长串﹐同时﹐系统也额外提供了像是Trim这样串处理函式假如您有个串处理单元必须要同时应用于Delphi1.0和2.0项目时﹐编译指示器
6、可以帮你忙此外﹐透过像是{$Ixxxx}这样CompilerDirectives﹐我们也可以适当含入某些,同样有助于切割组合我们或编译设定设定致执行环境项目小组成员间﹐必须有共同环境设定﹐我很难预料个小组成员间彼此有区别{$B}{$H}{$X}设定﹐最后子系统在并入主时会发生什么事此外,当您写好个组件或单元需要交予第3者使用时,使用编译指示器也可以保证元件使用者和您有相同编译环境使用CompilerDirectives指令语法CompilerDirectives从外表看起来和批注颇为类似,和批注区别
7、是:CompilerDirectives语法格式都是以「{$」开始,不空格紧接个名称(或个字母)表明给Compiler特别指示,再加上其它开关或参数内容,最后以右大括号作为指令结束,例如:{$B+}{$R-}{$RMyCursor.res}同时,就如同Pascal变量名称和保留字样,CompilerDirectives也是不区分大小写从指令语法格式来说CompilerDirectives﹐可以进步分类成以下3种格式:?开关指令(Switchdirectives)这类指令都是单字母以不空格方式连接「+
8、」或「-」符号;或者是开关名称以个空格后连接「ON」或「OFF」来表示作用/关闭某个编译指示开关例如:{$A+}{$ALIGN_disibledevent=>Re(F);CloseFile(F);{$I+}FileExists:=(IOResult=0)and(FileName<>‘’);end;{FileExists}可移植性我们都可能会用到其它公司或个人创作unit或component,也可能分享给其它人,换句话说,单元或可能会在区别机器上编译,直接将Compil