vc++6.0 IDE配置詳解

原文鏈接:http://hi.baidu.com/winnyang/blog/item/5ba4b32a4e3dba3e5243c139.html

 

大家可能一直在用VC 開發軟件,但是對於這個編譯器卻未必很瞭解。原因是多方面的。大多數情況下,我們只停留在“使用”它,而不會想去“瞭解”它。因爲它只是一個工具,我們寧 可把更多的精力放在C++語言和軟件設計上。我們習慣於這樣一種“模式”:建立一個項目,然後寫代碼,然後編譯,反反覆覆調試。但是,所謂:“公欲善其 事,必先利其器”。如果我們精於VC開發環境,我們是不是能夠做得更加遊刃有餘呢?   Visual C++可新建的 Projects項目   Visual C++可新建的 File文件 Visual C++的Build設置 1.Compile TEST.cpp選項 只編譯當前文件而不調用鏈接器或其它工具。輸出窗口將顯示編譯過程檢查出的錯誤或警告信息,在錯誤信息處單擊鼠標右鍵,可以得到錯誤代碼的位置 2. Build TEST.exe 選項 對最後修改過的源文件進行編譯和鏈接 3. Rebuild All選項 該選項允許用戶編譯所有的源文件,而不管它們何時曾經被修改過 4. Batch Build選項 該選項能單步重新建立多個工程文件,並允許用戶指定要建立的項目類型.VC提供了兩種目標應用程序類型 Win32 Release(發行版)、Win32 Debug(調試版)。   我們先來看一下VC的處理流程,大致分爲兩步:編譯和連接。源文件通過編譯生成了.obj文件;所有.obj文件和.lib文件通過連接生成.exe文件或.dll文件。下面,我們分別討論這兩個步驟的一些細節。   工程配置對話框 在這個對話框中,左上方的下拉列表框用於選擇一種工程配置,包括有Win32 Debug、Win32 Release和All Configurations(指前兩種配置一起),某些選項在不同的工程配置中有不同的缺省值。左邊的樹形視圖給出了當前工程所有的文件及分類情況。如 果我們把工程“Schedule”置爲高亮顯示(正如圖9-1那樣),對話框的右邊就會出現總共十個選項卡,其中列出了與工程有關的各種選項,不少選項卡 中有一個Reset按鈕,按下它後可以把選項卡內的各項設置恢復到生成工程時的初始值。如果我們在樹形視圖中選擇一個文件類或一個文件,那麼對話框右邊的 選項卡會自動減少到一個或兩個,其中列出的都是與選中的文件類或文件有關的選項。 編譯參數的設置。主要通過VC的菜單項Project->Settings->C/C++頁來完成。我們可以看到這一頁的最下面Project Options中的內容,一般如下: /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Debug/WritingDlgTest.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 各個參數代表的意義,可以參考Project Option語法解釋。比如/nologo表示編譯時不在輸出窗口顯示這些設置(我們可以把這個參數去掉來看看效果)等等。一般我們不會直接修改這些設置,而是通過這一頁最上面的Category中的各項來完成。 1)General: 一些總體設置。Warning level用來控制警告信息,None表示不顯示任何警告,L1表示只顯示嚴重的警告,L2表示顯示比L1次嚴重的警告,L4則表示顯示出所有的警告,包 括那些安全忽略的警告;Warnings as errors將警告信息當作錯誤處理,這樣在編譯完畢後就無法啓動連接器來進行連接;Optimizations是代碼優化,可以在Category的 Optimizations項中進行更細的設置;Generate browse info用以生成.sbr文件,記錄類、變量等符號信息,可以在Category的Listing Files項中進行更多的設置。Debug info,生成調試信息:None,不產生任何調試信息(編譯比較快);Line Numbers Only,僅生成全局的和外部符號的調試信息到.OBJ文件或.EXE文件,減小目標文件的尺寸;C 7.0- Compatible,記錄調試器用到的所有符號信息到.OBJ文件和.EXE文件;Program Database,創建.PDB文件記錄所有調試信息;Program Database for "Edit & Continue",創建.PDB文件記錄所有調試信息,並且支持調試時編輯。   2)C++ Language:pointer_to_member representation用來設置類定義/引用的先後關係,一般爲Best-Case Always表示在引用類之前該類肯定已經定義了;Enable Exception Handling,進行同步的異常處理;Enable Run-Time Type Information迫使編譯器增加代碼在運行時進行對象類型檢查;Disable Construction Displacements,設置類構造/析構函數調用虛函數問題。   3)Code Generation:Processor 表示代碼指令優化,可以爲80386、80486、Pentium、Pentium Pro,或者Blend表示混合以上各種優化。Use run-time library用以指定程序運行時使用的運行時庫(單線程或多線程,Debug版本或Release版本),有一個原則就是,一個進程不要同時使用幾個版 本的運行時庫。Single-Threaded,靜態連接LIBC.LIB庫;Debug Single-Threaded,靜態連接LIBCD.LIB庫;Multithreaded,靜態連接LIBCMT.LIB庫;Debug Multithreaded,靜態連接LIBCMTD.LIB庫;Multithreaded DLL,動態連接MSVCRT.DLL庫;Debug Multithreaded DLL,動態連接MSVCRTD.DLL庫。連接了單線程庫就不支持多線程調用,連接了多線程庫就要求創建多線程的應用程序。Calling convention可以用來設定調用約定,有三種:__cdecl、__fastcall和__stdcall。各種調用約定的主要區別在於,函數調用 時,函數的參數是從左到右壓入堆棧還是從右到左壓入堆棧;在函數返回時,由函數的調用者來清理壓入堆棧的參數還是由函數本身來清理;以及在編譯時對函數名 進行的命名修飾(可以通過Listing Files看到各種命名修飾方式)。Struct member alignment用以指定數據結構中的成員變量在內存中是按幾字節對齊的,根據計算機數據總線的位數,不同的對齊方式存取數據的速度不一樣。這個參數對 數據包網絡傳輸等應用尤爲重要,不是存取速度問題,而是數據位的精確定義問題,一般在程序中使用#pragma pack來指定。   4)Customize:Disable Language Extensions,表示不使用微軟爲標準C做的語言擴展;Eliminate Duplicate Strings,主要用於字符串優化(將字符串放到緩充池裏以節省空間),使用這個參數,使得 char *sBuffer = "This is a character buffer"; char *tBuffer = "This is a character buffer"; sBuffer和 tBuffer指向的是同一塊內存空間;Enable Function-Level Linking ,告訴編譯器將各個函數按打包格式編譯;Enables minimal rebuild,通過保存關聯信息到.IDB文件,使編譯器只對最新類定義改動過的源文件進行重編譯,提高編譯速度;Enable Incremental Compilation,同樣通過.IDB文件保存的信息,只重編譯最新改動過的函數;Suppress Startup Banner and Information Messages,用以控制參數是否在output窗口輸出。   5) Listing Files:Generate browse info的功能上面已經提到過。這裏可以進行更多的設置。Exclude Local Variables from Browse Info表示是否將局部變量的信息放到.SBR文件中。Listing file type可以設置生成的列表信息文件的內容:Assembly-Only Listing僅生成彙編代碼文件(.ASM擴展名);Assembly With Machine Code生成機器代碼和彙編代碼文件(.COD擴展名);Assembly With Source Code生成源代碼和彙編代碼文件(.ASM擴展名);Assembly, Machine Code, and Source生成機器碼、源代碼和彙編代碼文件(.COD擴展名)。Listing file name爲生成的信息文件的路徑,一般爲Debug或Release目錄下,生成的文件名自動取源文件的文件名。   6)Optimizations:代碼優化設置。可以選擇Maximize Speed生成最快速的代碼,或Minimize Size生成最小尺寸的程序,或者Customize定製優化。定製的內容包括: Assume No Aliasing,不使用別名(提高速度); Assume Aliasing Across Function Calls,僅函數內部不使用別名; Global Optimizations,全局優化,比如經常用到的變量使用寄存器保存,或者循環內的計算優化,如 i = -100; while( i < 0 ){ i += x + y;} 會被優化爲 i = -100; t = x + y; while( i < 0 ){i += t;} Generate Intrinsic Functions,使用內部函數替換一些函數調用(提高速度); Improve Float Consistency,浮點運算方面的優化; Favor Small Code,程序(exe或dll)尺寸優化優先於代碼速度優化; Favor Fast Code,程序(exe或dll)代碼速度優化優先於尺寸優化; Frame-Pointer Omission,不使用幀指針,以提高函數調用速度; Full Optimization,組合了幾種參數,以生成最快的程序代碼。 Inline function expansion,內聯函數擴展的三種優化(使用內聯可以節省函數調用的開銷,加快程序速度):Disable不使用內聯;Only __inline,僅函數定義前有inline或__inline標記使用內聯;Any Suitable,除了inline或__inline標記的函數外,編譯器“覺得”應該使用內聯的函數,都使用內聯。   7)Precompiled Headers:預編譯頭文件的設置。 預 編譯頭的概念:所謂的預編譯頭就是把一個工程中的那一部分代碼,預先編譯好放在一個文件裏(通常是以.pch爲擴展名的),這個文件就稱爲預編譯頭文件這 些預先編譯好的代碼可以是任何的C/C++代碼--------甚至是inline的函數,但是必須是穩定的,在工程開發的過程中不會被經常改變。如果這 些代碼被修改,則需要重新編譯生成預編譯頭文件。你可將將一些公共的、不大變動的頭文件(比如FILEX.h等)集中放到stdafx.h中,這一部分代碼就不必每次都重新編譯(除非是Rebuild All)。注意生成預編譯頭文件是很耗時間的。同時你得注意預編譯頭文件通常很大,通常有6-7M大。使用預編譯可以提高重複編譯的速度。 也 許你會問:現在的編譯器都有Time stamp的功能,編譯器在編譯整個工程的時候,它只會編譯那些經過修改的文件,而不會去編譯那些從上次編譯過,到現在沒有被修改過的文件。那麼爲什麼還 要預編譯頭文件呢?答案在這裏,我們知道編譯器是以文件爲單位編譯的,一個文件經過修改後,會重新編譯整個文件,當然在這個文件裏包含的所有頭文件中的東 西(.eg Macro, Preprocessor )都要重新處理一遍。VC的預編譯頭文件保存的正是這部分信息。以避免每次都要重新處理這些頭文件。 1. 這裏是使用工程裏的設置,/Yu”stdafx.h”。如果使用了/Yu,就是說使用了預編譯,我們在每個.cpp文件的最開頭,我強調一遍是最開頭,包 含 你指定產生pch文件的.h文件(默認是stdafx.h)不然就會有問題。如果你沒有包含這個文件,就告訴你Unexpected file end. 如果你不是在最開頭包含的 2. 如果你把pch文件不小心丟了,最簡單的辦法就是選中第一個選項“Not using....",這樣就根本不用預編譯頭也不去尋找pch文件,就不會出錯了,但是這樣做的後果是每次編譯、連接都化更多的時間。也可以選第二個選 項”Automatic use of",然後在“Through header”力填上stdafx.h,這樣如果沒有pch文件系統會自動生成一個pch,如果有的話就使用這個pch,這個選項是比較“智能”的。第三 個選項是強行創建一個pch文件,第四個選項是直接使用pch文件。當然“Through headers”裏都填stdafx.h了。 讓編譯器生成一個pch文件就可以了。也就是說把 stdafx.cpp(即指定/Yc的那個cpp文件)從新編譯一遍就可以了。當然你可以傻傻的 Rebuild all。   8) Preprocessor:預編譯處理。我們可以在這裏預先定義一些宏名,指定部分或所有符號具有未定義狀態。Additional include directories,可以指定額外的包含目錄,一般是相對於本項目的目錄,如../Include       Link連接參數的設置。主要通過VC的菜單項Project->Settings->Link頁來完成。我們可以看到這一頁的最下面Project Options中的內容,一般如下: /nologo /subsystem:windows /incremental:yes /pdb:"Debug/WritingDlgTest.pdb" /debug /machine:I386 /out:"Debug/WritingDlgTest.exe" /pdbtype:sept 下面我們分別來看一下Category中的各項設置。 1. General: 一些總體設置。可以設置生成的文件路徑、文件名 如在“Output file name:”下面的編輯框中可輸入:“C:/bin/TEST.exe”;連接的庫文件;Generate debug info,生成Debug信息到.PDB文件(具體格式可以在Category->Debug中設置);Ignore All Default Libraries,放棄所有默認的庫連接;Link Incrementally,通過生成. ILK文件實現遞增式連接以提高後續連接速度,將使程序可以在上一次編譯的基礎上被編譯(即增量編譯),而不必每次從頭開始編譯,這種方式下生成的文件 (EXE或DLL)較大;Generate Mapfile,生成.MAP文件記錄模塊相關信息;Enable Profiling,這個參數通常與Generate Mapfile參數同時使用,而且如果產生Debug信息的話,不能用.PDB文件,而且必須用Microsoft Format。 2. Customize: 這裏可以進行使用程序數據庫文件的設置。選中Use program database允許使用程序數據庫,這樣連接器會把調試信息放在程序數據庫中,如果不選中該選項,那麼也不能使用遞增連接方式。Force File Output ,即使某個模塊引用了一些未定義或者重複定義的符號,連接器仍然會強制(但不一定能正確運行)產生輸出文件(EXE或DLL);Print Progress Messages,可以將連接過程中的進度信息輸出到Output窗口。 3. Debug:設 置是否生成調試信息,以及調試信息的格式。格式可以有Microsoft Format、COFF Format(Common Object File Format)和Both Formats(兩種都有)三種選擇;Separate Types,表示將Debug格式信息以獨立的.PDB文件存放,還是直接放在各個源文件的.PDB文件中。選中的話,表示採用後者的方式,這種方式調試啓動比較快。 4. Input:這 裏可以指定要連接的庫文件,放棄連接的庫文件。還可以增加額外的庫文件目錄,一般是相對於本項目的目錄,如../Lib。Force Symbol References,可以指定連接特定符號定義的庫。 如 在“Object/library Modules:”下面的編輯框中輸入:“TestDll.lib”;在“Additional library path:”下面的編輯框中輸入:“C:/bin”。可用Workspace另一個工程編譯的靜態庫   5.Output:Base Address可以改變程序默認的基地址(EXE文件默認爲0x400000,DLL默認爲0x10000000),操作系統裝載一個程序時總是試着先從 這個基地址開始。Entry-Point Symbol可以指定程序的入口地址,一般爲一個函數名(且必須採用__stdcall調用約定)。一般Win32的程序,EXE的入口爲 WinMain,DLL的入口爲DllEntryPoint;最好讓連接器自動設置程序的入口點。默認情況下,通過一個C的運行時庫函數來實現:控制檯程 序採用mainCRTStartup (或wmainCRTStartup)去調用程序的main (或wmain)函數;Windows程序採用WinMainCRTStartup (或 wWinMainCRTStartup)調用程序的WinMain (或 wWinMain,必須採用__stdcall調用約定);DLL採用_DllMainCRTStartup調用DllMain函數(必須採用 __stdcall調用約定)。Stack allocations,用以設置程序使用的堆棧大小(請使用十進制),默認爲1兆字節。Version Information告訴連接器在EXE或DLL文件的開始部分放上版本號。一般情況下都不用改變。 值得注意的是,上面各個參數是大小寫敏感的;在參數後加上“-”表示該參數無效;各個參數值選項有“*”的表示爲該參數的默認值;可以使用頁右上角的“Reset”按鈕來恢復該頁的所有默認設置。 9)Resources選項卡 Resources選項卡控制着VC6的資源編譯器。如圖9-5所示,我們可以指定編譯後生成的資源文件的路徑,資源的語言類型,以及額外的資源包含目錄。 MIDL選項卡 這個選項卡與COM(組件對象模型)編程有關,我們不討論它。   10)Browse Info選項卡 在這個選項卡中,我們可以指定是否在建立工程的同時也生成瀏覽信息文件,有了這個文件後,我們就能夠在文本編輯器中通過關聯菜單的相應命令快速定位到某個符號的定義或引用的地方。   11)Pre-link step 這個選項卡用於添加在連接之前要執行的命令。   l2) Post-build step 這個選項卡用於添加在工程建立完畢之後要執行的命令 如 “copy debug/TestDll.lib C:/bin/TestDll.lib” 並在C盤下建一個bin目錄 做的件事情就是把TestDLL.lib拷貝到C:/bin所在的文件夾中     其它一些參數設置。 13) Project->Settings->General, 可以設置連接MFC庫的方式(靜態或動態)。如果是動態連接,在你的軟件發佈時不要忘了帶上MFC的DLL。第二個選項用於指定在編譯連接過程中生成的中 間文件和輸出文件的存放目錄,對於調試版本來說,缺省的目錄是工程下面的“Debug”子目錄。最下面的第三個選項用於指定是否允許每種工程配置都有自己 的文件依賴關係(主要指頭文件),由於絕大多數工程的調試版本和發佈版本都具有相同的文件依賴關係,所以通常不需要更改該選項。   14) Project->Settings->Debug, 可以設置調試時運行的可執行文件,如果正在編寫的程序是一個DLL,那麼應在此處指定一個用來調試該DLL的EXE文件。另外三個選項可以指定用於調試的 工作目錄,開始調試時給程序傳送的命令行參數,以及進行遠程調試時可執行文件的路徑。把類別切換到Additional DLLs後,我們可以指定在開始調試時是否爲一些額外的DLL裝載調試符號信息,只有裝載了符號信息後才能跟蹤進DLL。   15)Project->Settings->Custom Build,可以設置編譯/連接成功後自動執行一些操作。比較有用的是,寫COM時希望VC對編譯通過的COM文件自動註冊,可以如下設置: Description: Register COM Commands: regsvr32 /s /c $(TargetPath) echo regsvr32 exe.time > $(TargetDir)/$(TargetName).trg Outputs: $(TargetDir)/$(TargetName).trg   16)Tools->Options->Directories,設置系統的Include、Library路徑。 一些小竅門 1) 有時候,你可能在編譯的時候,計算機突然非法關機了(可能某人不小心碰了電源或你的內存不穩定等原因)。當你重啓機器後打開剛纔的項目,重新進行編譯,發 現VC會崩掉。你或許以爲你的VC編譯器壞了,其實不然(你試試編譯其它項目,還是好的!),你只要將項目的.ncb、.opt、.aps、.clw文件 以及Debug、Release目錄下的所有文件都刪掉,然後重新編譯就行了。 2) 如果你想與別人共享你的源代碼項目,但是把整個項目做拷貝又太大。你完全可以刪掉以下文件:.dsw、.ncb、.opt、.aps、.clw、. plg文件以及Debug、Release目錄下的所有文件。 3) 當你的Workspace中包含多個Project的時候,你可能不能直觀地、一眼看出來哪個是當前項目。可以如下設 置:Tools->Options->Format,然後在Category中選擇Workspace window,改變其默認的字體(比如設成Fixedsys)就行了。 4) 如何給已有的Project改名字?將該Project關掉。然後以文本格式打開.dsp文件,替換原來的Project名字即可。 5) VC6對類成員的智能提示功能很有用,但有時候會失靈。你可以先關掉項目,將.clw和.ncb刪掉,然後重新打開項目,點擊菜單項 View->ClassWizard,在彈出的對話框中按一下“Add All”按鈕;重新Rebuild All。應該可以解決問題。   斷點 斷點是調試器設置的一個代碼位置。當程序運行到斷點時,程序中斷執行,回到調試器。斷點是 最常用的技巧。調試時,只有設置了斷點並使程序回到調試器,才能對程序進行在線調試。 設置斷點:可以通過下述方法設置一個斷點。首先把光標移動到需要設置斷點的代碼行上,然後按F9快捷鍵彈出 Breakpoints對話框,方法是按快捷鍵 CTRL+B或ALT+F9,或者通過菜單Edit/Breakpoints打開。打開後點擊Break at編輯框的右側的箭頭,選擇合適的位置信息。一般情況下,直接選擇line xxx就足夠了,如果想設置不是當前位置的斷點,可以選擇Advanced,然後填寫函數、行號和可執行文件信息。 去掉斷點:把光標移動到給定斷點所在的行,再次按F9就可以取消斷點。同前面所述,打開Breakpoints對話框後,也可以按照界面提示去掉斷點。 條件斷點:可以爲斷點設置一個條件,這樣的斷點稱爲條件斷點。對於新加的斷點,可以單擊Conditions按鈕, 爲斷點設置一個表達式。當這個表達式發生改變時,程序就 被中斷。底下設置包括“觀察數組或者結構的元素個數”,似乎可以設置一個指針所指向的內存區的大小,但是我設置一個比較的值但是改動範圍之外的內存區似乎 也導致斷點起效。最後一個設置可以讓程序先執行多少次然後纔到達斷點。 設置條件斷點一定要先設置斷點的位置,不是說條件斷點就不需要再程序中設置停止行。 在vc當中如何進行條件斷點調試,比如希望停止在for循環的第25次 if (i == 24) { i= i;//這一句廢,爲的是斷點能加在這兒 } 加調試代碼condition中i==24 想要設定條件爲一個字符串指針等於某個字串時,比較麻煩 可以用類型轉換來實現,比如設置char型指針str在等於"2002"時停止,那麼我們就在條件裏設置 *(DWORD*)(str) == 0x32303032 就好了。如果有其他條件在用||和&&就好了。比如要求緊接着2002的還必須是1111,那麼我們在剛纔的條件後面加上 && *(DWORD*)(str + 4) == 0x31313131。 數據斷點:數據斷點 只能在Breakpoints對話框中設置。選擇“Data”頁,就顯示了設置數據斷點的對話框。在編輯框中輸入一個表達式,當這個表達式的值發生變化 時,數據斷點就到達。一般情況下,這個表達式應該由運算符和全局變量構成,例如:在編輯框中輸入 g_bFlag這個全局變量的名字,那麼當程序中有g_bFlag= !g_bFlag時,程序就將停在這個語句處。 消息斷點:VC也支持對Windows消息進行截獲。他有兩種方式進行截獲:窗口消息處理函數和特定消息中斷。 在 Breakpoints對話框中選擇Messages頁,就可以設置消息斷點。如果在上面那個對話框中寫入消息處理函數的名字,那麼每次消息被這個函數處 理,斷點就到達(我覺得如果採用普通斷點在這個函數中截獲,效果應該一樣)。如果在底下的下拉列表框選擇一個消息,則每次這種消息到達,程序就中斷。     [/td][/tr][tr][td=1,1,1038]VC文件擴展名解讀大全 .APS:存放二進制資源的中間文件,VC把當前資源文件轉換成二進制格式,並存放在APS文件中,以加快資源裝載速度。資源輔助文件。 .BMP:位圖資源文件。 .BSC: 瀏覽信息文件,由瀏覽信息維護工具(BSCMAKE)從原始瀏覽信息文件(.SBR)中生成,BSC文件可以用來在源代碼編輯窗口中進行快速定位。用於瀏 覽項目信息的,如果用source brower的話就必須有這個文件。可以在project options裏去掉Generate Browse Info File,這樣可以加快編譯進度。 .C:用C語言編寫的源代碼文件。 .CLW:ClassWizard生成的用來存放類信息的文件。classwizard信息文件,ini文件的格式。 .CNT:用來定義幫助文件中“Contents”的結構。 .CPP或.CXX:用C++語言編寫的源代碼文件。 .CUR:光標資源文件。 .DEF:模塊定義文件,供生成動態鏈接庫時使用。 .DLG:定義對話框資源的獨立文件。這種文件對於VC工程來說並非必需,因爲VC一般把對話框資源放在.RC資源定義文件中。 .DSP:VC開發環境生成的工程文件,VC4及以前版本使用MAK文件來定義工程。項目文件,文本格式。 .DSW:VC開發環境生成的WorkSpace文件,用來把多個工程組織到一個WorkSpace中。工作區文件,與.dsp差不多。 .EXP:由LIB工具從DEF文件生成的輸出文件,其中包含了函數和數據項目的輸出信息,LINK工具將使用EXP文件來創建動態鏈接庫。只有在編譯DLL時纔會生成,記錄了DLL文件中的一些信息。 .H、.HPP或.HXX:用C/C++語言編寫的頭文件,通常用來定義數據類型,聲明變量、函數、結構和類。 .HLP:Windows幫助文件。 .HM:在Help工程中,該文件定義了幫助文件與對話框、菜單或其它資源之間ID值的對應關係。 .HPJ:由Help Workshop生成的Help工程文件,用來控制Help文件的生成過程。 .HPG,生成幫助的文件的工程。 .ICO:圖標資源文件。 .ILK:連接過程中生成的一種中間文件,只供LINK工具使用。 .INI:配置文件。 .LIB:庫文件,LINK工具將使用它來連接各種輸入庫,以便最終生成EXE文件。 .LIC:用戶許可證書文件,使用某些ActiveX控件時需要該文件。 .MAK:即MAKE文件,VC4及以前版本使用的工程文件,用來指定如何建立一個工程,VC6把MAK文件轉換成DSP文件來處理。 .MAP:由LINK工具生成的一種文本文件,其中包含有被連接的程序的某些信息,例如程序中的組信息和公共符號信息等。執行文件的映像信息記錄文件。 .MDP:舊版本的項目文件,相當於.dsp .NCB:NCB是“No Compile Browser”的縮寫,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC開發環境自動生成。無編譯瀏覽文件。當自動完成功能出問題時可以刪除此文件。編譯工程後會自動生成。 .OBJ:由編譯器或彙編工具生成的目標文件,是模塊的二進制中間文件。 .ODL:用對象描述語言編寫的源代碼文件,VC用它來生成TLB文件。 .OLB:帶有類型庫資源的一種特殊的動態鏈接庫,也叫對象庫文件。 .OPT:VC開發環境自動生成的用來存放WorkSpace中各種選項的文件。工程關於開發環境的參數文件。如工具條位置信息等。 .PBI、.PBO和.PBT:由VC的性能分析工具PROFILE生成並使用的三種文件。 .PCH:預編譯頭文件,比較大,由編譯器在建立工程時自動生成,其中存放有工程中已經編譯的部分代碼,在以後建立工程時不再重新編譯這些代碼,以便加快整個編譯過程的速度。 .PDB:程序數據庫文件,在建立工程時自動生成,其中存放程序的各種信息,用來加快調試過程的速度。記錄了程序有關的一些數據和調試信息。 .PLG:編譯信息文件,編譯時的error和warning信息文件。 .RC:資源定義文件。 .RC2:資源定義文件,供一些特殊情況下使用。 .REG:註冊表信息文件。 .RES:二進制資源文件,資源編譯器編譯資源定義文件後即生成RES文件。 .RTF:Rich Text Format(豐富文本格式)文檔,可由Word或寫字板來創建,常被用來生成Help文件。 .SBR:VC編譯器爲每個OBJ文件生成的原始瀏覽信息文件,瀏覽信息維護工具(BSCMAKE)將利用SBR文件來生成BSC文件。 .TLB:OLE庫文件,其中存放了OLE自動化對象的數據類型、模塊和接口定義,自動化服務器通過TLB文件就能瞭解自動化對象的使用方法。 .WAV:聲音資源文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章