




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Delphi編譯指令說明2008-09-1123:40Delphi編譯指令說明不過要注意二點(diǎn),一個(gè)是{$I文件名.inc},從外部引入預(yù)定義;另外一個(gè)就是設(shè)置完了重新BuiltAll重構(gòu)一下,不然直接用F9執(zhí)行的結(jié)果就是亂的,我就是在projiect-->options-->conditionals-->conditionaldefine處設(shè)置了幾個(gè)條件符合,直接按F9,結(jié)果當(dāng)前頁(yè)面變了,其它的頁(yè)面沒變,結(jié)果是亂的。下面是從大富翁上摘下的編譯指令說明?!禗elphi下深入Windows核心編程》(附錄ADelphi編譯指令說明)摘抄人:麻子qq:71892967Delphi快速高小的編譯器主要來自O(shè)bjectPASCAL的嚴(yán)謹(jǐn),使用Delphi隨時(shí)都在與編譯器交流,大部分情況下不需要干涉編譯器的運(yùn)行,但是有時(shí)也需要對(duì)編譯器進(jìn)行必要的設(shè)置。**********************************************************************************************A.1使用編譯設(shè)置對(duì)話框編譯器的編譯指令是用于指定編譯器對(duì)項(xiàng)目編譯過程的動(dòng)作和行為??梢酝ㄟ^[Project]->[Options]->[Complier]選項(xiàng)頁(yè)進(jìn)行設(shè)置,絕大部分的編譯環(huán)境都可以通過這一對(duì)話框進(jìn)行調(diào)整,他包含了對(duì)代碼、語(yǔ)法、調(diào)試信息等的設(shè)置。1.代碼設(shè)置(CodeGeneration)Optimization:代碼優(yōu)化開關(guān)Alignedrecordfields:字對(duì)齊數(shù)據(jù)。這個(gè)編譯指令能夠在變量和類型化常量的字節(jié)對(duì)齊和字對(duì)齊之間進(jìn)行切換,其作用是全局的。Stackframes:Windows堆棧幀。其作用域是局部的,他使編譯器成為遠(yuǎn)端過程和函數(shù)生成特定的開頭和結(jié)尾代碼。這個(gè)指令用于Windows3.0的實(shí)模式,對(duì)所有Delphi應(yīng)用程序他應(yīng)該是關(guān)閉的。Pentium-safeFDIV:Pentium安全FDIV檢查。此指令能夠在Pentium處理器中指定編譯器是否創(chuàng)建能夠檢測(cè)和使用有缺陷的浮點(diǎn)除法指令的代碼。2.運(yùn)行期錯(cuò)誤(RuntimeErrors)RangeChecking:范圍檢查。這個(gè)指令的作用范圍是局部的,用于控制范圍檢驗(yàn)代碼的生成。I/OChecking:I/O檢查。這個(gè)指令的作用域?yàn)榫植?,用來生成?duì)一個(gè)文件的輸入和輸出過程和調(diào)用結(jié)果進(jìn)行檢查的代碼。一般應(yīng)該使其功能打開。OverflosChecking:溢出檢查。其作用是生成對(duì)算術(shù)溢出檢查的代碼。3.語(yǔ)法設(shè)置(SyntaxOptings)StrictVar-strings:靜態(tài)變量串開關(guān)。用來控制對(duì)以變量參數(shù)形式傳遞的串的類型檢查。ComleteBooleanEval:完全布爾表達(dá)量判定。用于執(zhí)行強(qiáng)制的完整表達(dá)式判定。完全布爾量判定,有可能導(dǎo)致系統(tǒng)崩潰,所以一般不使用他。ExtendedSyntax:擴(kuò)展語(yǔ)法開關(guān)。他能允許或禁止Delphi的擴(kuò)展語(yǔ)法。Typed@Operator:類型化的@運(yùn)算符檢查。應(yīng)用于局部的變量引用上,控制@運(yùn)算符返回的指針值類型。OpenParameters:開放參數(shù)開關(guān)。用于控制使用String關(guān)鍵字聲明的變量參數(shù)。開放參數(shù)允許將大小不一的串變量傳遞到同一個(gè)過程或函數(shù)中,一般在匯編中會(huì)使用到。HugeStrings:字符串類型開關(guān)。用于控制Ansistring和Shortstring類型的切換。當(dāng)打開時(shí)符合Ansistring,關(guān)閉時(shí)符合Shortstring。AssignableTypedConstants:可分配類型常量。用于向下與Delphi1.0兼容。4.調(diào)試(Debugging)DebugInformation:調(diào)試信息開關(guān)。用于設(shè)置是否把調(diào)試信息寫入以編譯的單元文件(.dcu)。LocalSymbols:局部符號(hào)開關(guān)。允許或禁止局部符號(hào)信息的創(chuàng)建。ReferenceInfo/DefinitionsOnly:符號(hào)信息開關(guān)。用于允許或禁止由Delohi的對(duì)象瀏覽器使用的符號(hào)引用信息的生成。Assertions:用于控制局部代碼的屬性。UseDebugDCUs:使用或禁止VCL的DCU文件調(diào)試。5.信息(Messages)ShowHints:顯示暗示。ShowWarnings:顯示警告。**********************************************************************************************A.2使用編譯指令除了使用編譯設(shè)置對(duì)話框?qū)幾g器進(jìn)行設(shè)置外,還可以通過編譯指令來對(duì)編譯器進(jìn)行設(shè)置。對(duì)于局部的編譯器設(shè)置,只有使用編譯指令來完成。對(duì)于開關(guān)編譯指令,通過在編譯指令后加入指示開關(guān)狀態(tài)的加號(hào)和減號(hào)來控制編譯器。例如:{$B+}:打開完全布爾量檢查。{$Q-}:關(guān)閉溢出檢查。通常,編譯指令的作用域是在編譯指令后的代碼部分,而對(duì)于全程的編譯指令應(yīng)該防在單元接口部分的開頭。編譯設(shè)置對(duì)話框的設(shè)置都有與之對(duì)應(yīng)的編譯指令用于在代碼中對(duì)編譯器進(jìn)行設(shè)置,如下表所示。設(shè)置項(xiàng)編譯指令Optimizations{$O}Alignedrecordfields{$A}Stackframes{$W}Pentium-safeFDIV{$U}RangeChecking{$R}I/OChecking{$I}OverflowChecking{$Q}StrictVar-strings{$V}ComleteBooleanEval{$B}ExtendedSyntax{$X}Typed@Operator{$T}OpenParameters{$P}HugeStrings{$H}Assertionstypedconstants{$J}Debuginformation{$D}Localsysnbols{$L}在這些編譯指令以外還有一些非常有用的編譯指令。$RFilename:這個(gè)編譯指令是最為常用的編譯指令,他是資源文件編譯指令,用于指定連接到執(zhí)行文件和庫(kù)的資源文件,例如在工程文件(.dpr)中會(huì)有{$R*.RES}的編譯指令,表明把后綴為.RES的與工程文件同名的資源文件連接入執(zhí)行文件,也可以指定一個(gè)資源文件,資源文件的使用對(duì)于編寫Windows程序來說是很重要的基礎(chǔ)。$IFilename:這個(gè)編譯指令功能類似于C語(yǔ)言的#Include,用于指定編譯時(shí)包括的文件。**********************************************************************************************A.3使用條件編譯指令條件編譯指令是非常重要的編譯指令,他控制著在不同條件下(例如,不同的操作系統(tǒng))產(chǎn)生不同的代碼。條件編譯指令是包含在注釋括號(hào)之內(nèi)的,如下表所示。條件編譯指令含義$DEFINE用于定義一個(gè)條件符號(hào),一旦定義,條件符號(hào)就為真$ELSE與$IFDEF配合使用,如果$IFDEF條件為假,則只對(duì)源文件$ELSE后一小部分進(jìn)行編譯$ENDIF結(jié)束一個(gè)以$IF開始的條件段$IFDEF對(duì)條件符號(hào)進(jìn)行判斷,為真則編譯源文件$IFNDEF對(duì)條件符號(hào)進(jìn)行判斷,為假則編譯源文件$IFOPT根據(jù)編譯開關(guān)狀態(tài),對(duì)源文件編譯$UNDEF撤消以前的條件符號(hào)定義這些條件編譯指令是非常有用的。例如,可以通過開關(guān)的狀態(tài)來控制編譯:{IFOPTR+}showmessage('Compiledwithrange-checking');{$ENDIF}也可以通過定義條件符號(hào)來控制編譯:{$Defines}……{$ifdefs}showmessage('yes');{$else}showmessage('no');{$endif}他的編譯結(jié)果是顯示'yes',但是如果省去{$Defines}則顯示'no'。在Delphi中已經(jīng)預(yù)定義了一些關(guān)鍵的條件符號(hào),如下表所示。條件符號(hào)含義VERxx編譯器版本,XX表示版本,例如:Delphi1.0的編譯器版本為80、Delphi5.0的編譯器版本為130WIN32是否WIN32的運(yùn)行環(huán)境(Windows95.98/NT/200
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 品開發(fā)合同協(xié)議
- 售樓處保潔合同補(bǔ)充協(xié)議
- 快遞員勞動(dòng)合同協(xié)議版
- 民辦單位報(bào)名協(xié)議書模板
- 商業(yè)廣場(chǎng)租賃合同協(xié)議
- 快遞車間出租合同協(xié)議
- 毛坯住房買賣協(xié)議書范本
- 商店轉(zhuǎn)讓協(xié)議合同模板
- 商業(yè)贊助合同協(xié)議
- 2025合同調(diào)整協(xié)議英文版
- 《山東省蒙陰縣蜜桃產(chǎn)業(yè)的現(xiàn)狀、問題及對(duì)策研究》
- 2023-2024年外賣騎手行業(yè)現(xiàn)狀及發(fā)展趨勢(shì)研究報(bào)告
- 施工現(xiàn)場(chǎng)防火安全管理制度
- 住院精神疾病患者自殺風(fēng)險(xiǎn)護(hù)理2023版團(tuán)標(biāo)
- 國(guó)家安全教育知到智慧樹章節(jié)測(cè)試課后答案2024年秋臨沂職業(yè)學(xué)院
- 極端事件下的電力系統(tǒng)風(fēng)險(xiǎn)評(píng)估
- 【MOOC】跨文化交際入門-華中師范大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 人工智能導(dǎo)論(天津大學(xué))知到智慧樹章節(jié)答案
- 合同代簽聲明范本
- 2024年江蘇省蘇州市《保安員證》考試題庫(kù)含答案(完整)
- 2024年注冊(cè)安全工程師考試金屬非金屬礦山(中級(jí))安全生產(chǎn)專業(yè)實(shí)務(wù)試卷及解答參考
評(píng)論
0/150
提交評(píng)論