星期四, 12月 24, 2009

DCC32 參數說明

它的編譯器參數如下:
選項    描述
Aunit=alias 設置單元別名
B      編譯所有單元
CC     編譯控制台程序
CG     編譯圖形界面程序
Ddefines  編譯條件符號定義
Epath    可執行文件輸出路徑
Foffset   查找運行期間錯誤
GD     生成完整.Map文件
GP     生成.Map文件Public段
GS     生成.Map文件Segment段
H      輸出提示信息
Ipaths   文件包含路徑
J      生成.Obj目標文件
JP     生成C++類型.Obj目標文件
Kaddress  Set image base address
LEpath   包.BPL文件輸出路徑
LNpath   .dcp文件輸出路徑
LUpackage  使用運行期間包列表
M      編譯有改動的源文件
Npath    dcu/dpu文件輸出目錄
Opaths   .Obj文件(彙編目標代碼文件)路徑
P      按8.3格式文件名查找
Q      安靜模式
Rpaths   資源文件(.RES)路徑
TXext    目標文件擴展名
Upaths   單元文件路徑
V      為Turbo Debugger生成調試信息文件
VN     以.Giant格式生成包含命名空間的調試信息文件(將用於C++Builder)
VR     生成調試信息文件.rsm
W      輸出警告信息
Z      Disable implicit compilation
$directive Compiler directives
--Help   顯示編譯選項的幫助。同樣的,如果你在命令行單獨輸入dcc32,也會顯示編譯選項的幫助。
--version  顯示產品名稱和版本

基本 DOS 批次處理詳細解說

一、echo@callpauserem 是批次檔案最常用的幾個命令,我們就從他們開始學起
echo
表示顯示此命令後的字元
echo off
表示在此語句後所有運行的命令都不顯示命令行本身
@
echo off相象,但它是加在其他命令行的最前面,表示運行時
不顯示命令行本身。
call
調用另一條批次檔案(如果直接調用別的批次檔案 ,執行完
那條檔後將無法執行當前檔後續命令)
pause
運行此句會暫停,顯示 Press any key to continue... 等待用戶
按任意鍵後繼續
rem
表示此命令後的字元為解釋行,不執行,只是給自己今後查找用的


二、if goto choice for 是批次檔案中比較高級的命令,如果這幾個你用 得很熟練,你就是批次檔案的專家啦。
if
表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
1
if "參數" == "字串"  待執行的命令
參數如果等於指定的字串,則條件成立,運行命令,否則運行下一句。
(
注意是兩個等號)
如:if "%1"=="a" format a:
2
if exist 檔案名  待執行的命令
如果有指定的檔,則條件成立,運行命令,否則運行下一句。
如:if exist config.sys edit config.sys
3
if errorlevel 數位  待執行的命令
如果返回碼等於指定的數字,則條件成立,運行命令,否則運行下一句。
if errorlevel 2 goto x2  DOS程式運行時都會返回一個數位給DOS
稱為錯誤碼errorlevel或稱返回碼

goto
批次檔案運行到這裏將跳到goto 所指定的標號處,一般與 if 配合使用。
:
goto end
:end
echo this is the end
:
這是標號字元(所在位是冒號),是用來執行被 goto 跳轉所用的標號字元,
標號所在行是不會被執行,: :end 等等...

choice
使用此命令可以讓用戶輸入一個字元,從而運行不同的命令。使用時應該
/c:參數,c:後應寫提示可輸入的字元,之間無空格。它的返回碼為1234……
: choice /c:dme defrag,mem,end
將顯示
defrag,mem,end[D,M,E]?
例如,test.bat的內容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag
應先判斷數值最高的錯誤碼
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此檔運行後,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e
然後if語句將作出判斷,d表示執行標號為defrag的程式段,m表示執行
標號為mem的程式段,e表示執行標號為end的程式段,每個程式段最後都
goto end將程式跳到end標號處,然後程式將顯示good bye,檔結束。

for
迴圈命令,只要條件符合,它將多次執行同一命令。
格式FOR [%%f] in (集合) DO [命令]
只要參數f在指定的集合內,則條件成立,執行命令
如果一條批次檔案中有一行:
for %%c in (*.bat *.txt) do type %%c
含義是如果是以battxt結尾的檔,則顯示檔的內容。
device
devicehigh
載入一些記憶體駐留程序,用於管理設備。比如記憶體管理程式和
光碟機驅動程式等。
如: device=c:\dos\himem.sys
device=c:\dos\emm386.exe ram
devicehigh=c:\cdrom\cdrom.sys

himem.sys
emm386.exe
DOS
只能直接使用640K的記憶體,即基本記憶體,必須依靠其他記憶體管理程式來
使用更多的記憶體,這兩條命令就是最常用的記憶體管理程式。
himem.sys
負責管理擴展記憶體。
emm386.exe
負責管理高端記憶體並在擴展記憶體中類比延伸記憶體供某些軟體使用。
為了使用更多的記憶體,配置檔中應有:
device=c:\dos\himem.sys
device=c:\dos\emm386.exe ram
注意:EMM386.exe 要求先安裝 himem.sys,因而必須確保
安裝 himem.sys 的配置命令在 emm386.exe 之前。
dos=high,umb
這兩個參數也可以分開寫成兩條語句,即:
dos=high
dos=umb
應在config.sys中加入這條命令,這樣會將DOS的系統檔移入高端
記憶體,空出更多的基本記憶體給其他軟體使用。 注意,如果用戶沒有
安裝emm386.exeumb這個參數是沒有實際意義的
lastdriver lastdriver
規定用戶可以訪問的最大驅動器符數目,也就是DOS所能
識別的最後的驅動器符(字母)。如果設定的驅動器符數目小於本機上
的實際驅動器數,則此lastdriver命令會被忽略掉。缺省的最大驅動
器符數目為本機的實際驅動器數目加一。
::
二個冒號,它和批次檔案中的 rem 含義相同,即注釋
ramdrive.sys
虛擬磁片檔。
只要在 config.sys 中加入 device=ramdrive.sys 就可使用虛擬磁片了
比如:
   device=c:\dos\ramdrive.sys 1024 /e
表示在擴展記憶體中建立 1M 的虛擬磁片。如果加/a參數,則表示在擴充
記憶體中建立虛擬磁片。
%CDROM% %CDROM%
是光碟機盤符的變數字串,用它可以把所在的任意光碟機盤符替為真實盤符, 需要與光碟機驅動模組一同執行,:
LH \MSCDEX.EXE /D:mscd001 /L:%CDROM%
%RAMD% %RAMD%
是隨機虛擬磁片, 此盤創建在擴展記憶體中, 建立此盤的模組就是 ramdrive.sys ,見上面的虛擬磁片檔說明。
另外這個虛擬內在還有更強大的虛擬記憶體管理器,可以超過64MB的記憶體管理,就是 XMSDSK.EXE EMSDSK.EXE