cyberfan's blog
正其谊不谋其利,明其道不计其功
IT博客 ::
首页 ::
新随笔 ::
联系 ::
聚合
::
管理 ::
15
随笔 ::
489 文章
::
44 评论
::
0 Trackbacks
<2025年8月>
日一二三四五六272829303112345678910111213141516171819202122232425262728293031123456
公告
这个博客主要讨论技术问题,我的主博客是http://cyberfan.5151j.net/,欢迎大家来访。
常用链接
我的随笔
我的评论
我参与的随笔
留言簿(5)
给我留言
查看公开留言
查看私人留言
随笔分类(14)
个人心得(9) (rss)
我的作品(1) (rss)
起居注(4) (rss)
随笔档案(15)
2005年9月 (5)
2005年8月 (10)
文章分类(489)
about me (rss)
c/c++ (rss)
database(1) (rss)
delphi(71) (rss)
english(8) (rss)
java(4) (rss)
linux/unix(66) (rss)
my photo (rss)
oa(9) (rss)
program life(11) (rss)
vb(25) (rss)
windows (rss)
网海拾贝(127) (rss)
股票证券(22) (rss)
营销管理(145) (rss)
文章档案(489)
2005年8月 (489)
相册
my photo
blogs
cyberfan
博客上海
博客俱乐部
摘客中国
这我过去建的一个博客,现在已停止更新了。
最新随笔
1. 昨晚在家里装linux
2. 对opera 8.0的看法
3. 对这几天工作的总结。
4. 撤并网点的过程
5. 一个强大全面的邮件客户端
6. 硬盘SCO分区表损坏如何挽救数据
7. 用ghost2003的local-disk-from image模式克隆unix IDE硬盘
8. editplus的用法
9. 写给经常需要ghost linux系统的朋友
10. 农信社储蓄所撤并如何进行微机帐务合并
11. 一个关于raw格式的解决方法
12. 关于我
13. U盘备份
14. 信用社总帐模板
15. 我的博客生涯
搜索
积分与排名
积分 -
113263
排名 -
63
最新评论
1. re: 10小时快速简易教程-如何做外贸
评论内容较长,点击标题查看
--Look here
2. re: 跨单元、跨类地访问Delphi类的私有域
好东西啊 拜读
--memkey
3. re: 10小时快速简易教程-如何做外贸
评论内容较长,点击标题查看
--coursework online
4. re: 10小时快速简易教程-如何做外贸
评论内容较长,点击标题查看
--best custom paper
5. re: 计算机科学与技术学习反思录
评论内容较长,点击标题查看
--custom essay uk
6. re: 10小时快速简易教程-如何做外贸
评论内容较长,点击标题查看
--thesis
7. re: 计算机科学与技术学习反思录
评论内容较长,点击标题查看
--american history essay paper
8. re: 计算机科学与技术学习反思录
评论内容较长,点击标题查看
--resume writers
9. re: 计算机科学与技术学习反思录
评论内容较长,点击标题查看
--JeffersonAmanda
10. re: Java学习从入门到精通
评论内容较长,点击标题查看
--KennedyMarcy27
阅读排行榜
1. 一个关于raw格式的解决方法(11068)
2. editplus的用法(4008)
3. 写给经常需要ghost linux系统的朋友(1444)
4. U盘备份(865)
5. 用ghost2003的local-disk-from image模式克隆unix IDE硬盘(659)
6. 农信社储蓄所撤并如何进行微机帐务合并(606)
7. 信用社总帐模板(580)
8. 硬盘SCO分区表损坏如何挽救数据(570)
9. 昨晚在家里装linux(520)
10. 一个强大全面的邮件客户端(503)
评论排行榜
1. 一个关于raw格式的解决方法(3)
2. editplus的用法(3)
3. 昨晚在家里装linux(2)
4. U盘备份(2)
5. 硬盘SCO分区表损坏如何挽救数据(1)
6. 农信社储蓄所撤并如何进行微机帐务合并(1)
7. 写给经常需要ghost linux系统的朋友(0)
8. 一个强大全面的邮件客户端(0)
9. 撤并网点的过程(0)
10. 对这几天工作的总结。(0)
Delphi编译指令详解(1-10)
Delphi编译指令详解(1)——总述 Delphi编译指令共有三种,开关编译指令、参数编译指令和条件编译指令。一个编译指令实际上是一个标志符(编译器所能识别的标志符),且有其固定的语法。编译器根据不同的指令按不同的方式编译程序。你可以将一个编译指令放在程序的任何位置。编译指令的开始字符是" $" ,它总是出现在 "{"符号之后,$之后为编译指令的实际部分,可以是一个或多个字符(根据指令的不同而定),在指令后还可以包含一个或多个需要的参数。一个编译指令的结束符为"}"。 下面分别讲述三种编译指令开关编译指令地特点是它有 on 、off 两种转换状态。对于单字符版本,你可以在编译指令后添加 "+"或"-"。对于长字符版本,你可以在编译指令后添加 "on"或"off"。开关编译指令又分为全局和局部两种。全局编译指令影响全部的编译内容,它必须在放在程序和单元声明之前。局部编译指令仅影响局部的编译内容,它的影响范围是,直至下一个最近的编译指令。它可以放在程序的任意位置。开关编译指令可以组合成一个简单的编译指令组,中间用逗号分开,但不能有空格。例如:{$B+,R-,S-}参数编译指令通过参数指定影响的的内容,参数可以为文件名或内存大小等。条件编译指令指定的条件如何编译特定的区域段。也就是如果满足某个条件,则按照一种方式编译,否则按另一种方式编译。所有的编译指令(除开关编译指令外)在名字和参数之间至少应有一个空格。例如:{$B+}{$STACKCHECKS ON}{$R- Turn off range checking}{$I TYPES.INC}{$M 32768,4096}{$DEFINE Debug}{$IFDEF Debug}{$ENDIF}Delphi编译指令详解(2)——排列字段类型(Align fields)Type Switch //开关编译指令 Syntax {$A+}, {$A-}, {$A1}, {$A2}, {$A4}, or {$A8}{$ALIGN ON}, {$ALIGN OFF}, {$ALIGN 1}, {$ALIGN 2}, {$ALIGN 4}, or {$ALIGN 8}Default {$A8}{$ALIGN 8}Scope Local //局部指令说明:指令 $A 控制Delphi中的记录类型字段和类结构型字段。在指令 {$A1} 或 {$A-}状态下,字段是无序的,所有的记录和类结构都被积压在一起,无序排放。在指令 {$A2} 下,记录型的字段在声明时没有packed,类型结构中的字段,按字节顺序排列。在指令 {$A4} 下,记录型的字段在声明时没有packed,类型结构中的字段,按双字节顺序排列。在指令 {{$A8} 或 {$A+} 下,记录型的字段在声明时没有packed,类型结构中的字段,按四字节顺序排列。在指令 $A 下,无论变量类型,常量类型,总是以最佳存取方式排列。在 {$A8} 下,按最快的方式排列。Delphi编译指令详解(3)——注释与编译指令的区别与联系(Comments and compiler directives)注释的内容将被编译器忽略,除非它们是离析器函数或编译指令。这里有几种常见的注释结构{ 括在此大括号中的内容为注释内容 ,此内容可以为多行,只要在两个大括号之间即可以,注释掉的内容一般都会以特殊的字体和颜色显示(适合所有的注释类型),很容易区分}(* 在此括号和星号之间的内容为注释内容 *)// 在此双反斜线后的内容为注释内容,此处只能为一行。.注释不能被嵌套。如{{}}将不起作用,但是(*{}*)是允许的。还有一种注释它跟普通的注释很像,但它有特殊的一点以 "{$" 开始,以"}",此种注释称为编译指令。如{$WARNINGS OFF}它将告诉编译器不要产生错误警告信息。说白了 编译指令 不是一种注释,而是一种告诉编译器如何编译的指示符。Delphi编译指令详解(4)——应用程序类型Type Parameter //参数指令Syntax {$APPTYPE GUI} or {$APPTYPE CONSOLE}Default {$APPTYPE GUI}Scope Global //局部指令说明$APPTYPE 编译指令决定是否产生 Win32 控制台程序(以DOS方式显示)或 图形界面程序(以窗口显示,大部分为此程序)。在{$APPTYPE GUI}编译指令下,编译器产生 图形界面程序,这是一种普通的Delphi应用程序。在{$APPTYPE CONSOLE}编译指令下,编译器产生一个控制台应用程序。当一个控制台程序启动的时候,出现一个控制台窗口,通过此窗口用户可以和应用程序交互。此时标准的输入输出命令与控制台程序自动结合。IsConsole布尔变量在System单元中,通过它可以查看程序是否运行在控制台程序下或图形界面程序下。$APPTYPE编译指令只能出现在程序中。他不可以出现在 库文件 单元文件 和包中。Delphi编译指令详解(5)——声明称指令(Assert directives)Type Switch //开关类型Syntax {$C+} or {$C-}{$ASSERTIONS ON} or {$ASSERTIONS OFF}Default {$C+}{$ASSERTIONS ON}Scope Local //局部说明$C 指令决定在Delphi资源文件中能否产生声明代码。{$C+}为默认指令。此声明通常不用在运行时中的测试版本产品中。Delphi编译指令详解(6)——调试信息Type Switch //开关类型Syntax {$D+} or {$D-}{$DEBUGINFO ON} or {$DEBUGINFO OFF}Default {$D+}{$DEBUGINFO ON}Scope Global //局部指令&nsp;说明:$D 指令决定能否产生调试信息。这个信息是由每个进程产生的一个成员列表,并记录对象代码地址在资源文件中的行号。对于单元文件,调试信息记录在和单元文件一起的单元对象代码中。调试信息增加单元文件的大小,当编译程序编译单元文件是将增加而外的内存。但它不影响可执行程序的大小和速度。当一个程序或单元文件在{$D+}状态下被编译,综合调试允许你在此模块中单步运行和设置断点。$D指令通常和 $L一起使用,他们能决定是否产生局部调试的符号信息。 Delphi编译指令详解(7)——库文件与共享对象Type Parameter //参数编译指令Syntax $LIBPREFIX 'string'$LIBSUFFIX 'string'$LIBVERSION 'string'Defaults $LIBPREFIX 'lib' or $SOPREFIX 'bpl'$LIBSUFFIX ' ' $LIBVERSION ' 'Scope Global //局部指令说明:$LIBPREFIX 指令可以覆盖 默认的 'lib' 或 'bpl'输出文件前缀。例如你可以指定{$LIBPREFIX 'dcl'} 对于一个设计时间包,你可以使用下面的指令去所有的前缀。{$LIBPREFIX ' '} $LIBSUFFIX 指令添加一个指定的后缀(在扩展明之前)到输出文件名中。例如,使用{$LIBSUFFIX '-2.1.3'} 添加到something.pas中,将产生something-2.1.3.dll 文件$LIBVERSION指令添加一个二层扩展(在原扩展名之后)到输出文件名中。例如使用{$LIBVERSION '-2.1.3'} 在something.pas中将产生libsomething.dll.2.1.3 文件Delphi编译指令详解(8)——定义指令Type Conditional compilation //条件指令Syntax {$DEFINE name}根据一个给定的名字设计一个Delphi条件符号。这个符号需要在此模块中已经声明和验证,或者在{$UNDEF name}中已经出现。如果 此名字已经定义则{$DEFINE name}将失效。Delphi编译指令详解(9)——描述指令Type Parameter //参数Syntax {$DESCRIPTION 'text'}Scope Global //局部说明$D指令插入你指定的模块文件中,当它应放在可执行文件,Dll文件,或包的前面。一般来说指明的是名字、版本号和版权,但是你也可以指定你需要指定的内容。例如:{$D 'My Application version 12.5'}字符串不能超过256个字节。此描述对于最终用户一般是看不到的。标志你的执行文件,通过描述性文字,版本和版权信息,将对你的最终用户有意。提示:此文本描述必须包含在引用中。Delphi编译指令详解(10)——ELSE指令Type Conditional compilation //条件指令Syntax {$ELSE}说明:此指令位于{$IFxxx}之后,{$ENDIF} or {$IFEND}之前,是编译与忽略源代码的界线。
posted on 2005-08-12 16:00 cyberfan 阅读(415) 评论(0) 编辑 收藏 引用 所属分类: delphi
只有注册用户登录后才能发表评论。
Powered by:
IT博客
Copyright © cyberfan