VC6.0和VC2005项目配置详解
轉(zhuǎn)自:http://blog.lehu.shu.edu.cn/byman/A333883.html
?一.IDE基礎(chǔ)配置
?
1.?字體
VC6中“Tools→Options→Format→Font”配置字體;VC2005中“工具→選項(xiàng)→環(huán)境→字體和顏色”配置字體。
編寫代碼一般采用等寬字體,等寬點(diǎn)陣(位圖)字體,相對(duì)矢量字體而言具有兼容性好和顯示清晰的優(yōu)點(diǎn)。常用的編程等寬字體包括Fixedsys(VC6和notepad御用字體)、Consolas、YaHei Mono。
VC6默認(rèn)可選字體只有Fixedsys和Terminal,可通過(guò)修改注冊(cè)表來(lái)改字體,在HKEY_CURRENT_USER/Software/Microsoft/DevStudio/6.0/Format下面有幾個(gè)子鍵,可以修改Source? Window鍵的FontFace和FontSize來(lái)配置源代碼窗口的顯示字體。例如設(shè)置11號(hào)的Consolas字體:FontFace=Consolas,FontSize=11。
2.?制表符(TAB)
程序塊要采用縮進(jìn)風(fēng)格編寫,IDE碰到左括號(hào)換行的情況一般會(huì)自動(dòng)縮進(jìn)(Auto Indent),縮進(jìn)的空格數(shù)和制表符的寬度一般設(shè)為4個(gè)半角字符。由于不同的編輯器對(duì)TAB空格數(shù)的設(shè)置可能不一樣,有的是4有的是8,為避免使用不同的編輯器閱讀程序時(shí)的布局不整齊問(wèn)題,建議只使用空格鍵對(duì)齊。
VC6中“Tools→Options→Tabs”的“Insert spaces/Keep tabs”中選擇“Insert spaces”;VC2005中“工具→選項(xiàng)→文本編輯器→所有語(yǔ)言→制表符”可配置制表符大小(Tab Size)/縮進(jìn)大小(Indent Size)為4,對(duì)“插入空格/保留制表符”勾選“插入空格”。
3.?行代碼字符數(shù)
關(guān)于一行編寫多少代碼換行比較合適的問(wèn)題,可以在VC中輸入一行”//”即可得知,一般為75或80。
4.外接插件和外部工具
外接插件能擴(kuò)展Visual Studio的功能,例如VC6默認(rèn)并無(wú)行號(hào)顯示功能,可以使用VC6LineNumberAddin插件實(shí)現(xiàn)顯示行號(hào),“Tools -> Customize→Add-ins and Macro Files”選擇“Browse”進(jìn)VC6LineNumberAddin.dll即可加載使用。我們?cè)赩C2005的“工具→外接程序管理器”中可以看到安裝的“Visual Assist X”插件,并可選擇啟用與否。
外部工具主要是結(jié)合IDE使用,如使用AStyle格式化當(dāng)前打開(kāi)的代碼文件,使用gedit打開(kāi)當(dāng)前代碼文件。外部工具的配置很簡(jiǎn)單,VC6中通過(guò)“Tools→Customize→Tools”添加,VC2005中通過(guò)“工具→外部工具”添加。
以下為AStyle的配置:
標(biāo)題:AStyle
命令:C:/Program Files/Microsoft Visual Studio 8/Common7/Tools/AStyle.exe
參數(shù):--style=ansi $(ItemFileName)$(ItemExt)
初始目錄:$(ItemDir)
勾選“使用輸出窗口”。
這樣,“工具菜單”中新增一個(gè)“AStyle”的子項(xiàng),點(diǎn)擊“AStyle”即可按ANSI風(fēng)格格式化當(dāng)前文件代碼。
5. IDE指定和打開(kāi)多個(gè)項(xiàng)目
Q1:安裝VS2005后,之前的VC6默認(rèn)打開(kāi)程序和圖標(biāo)都變更為VC2005的風(fēng)格。如何恢復(fù)至VC6的默認(rèn)風(fēng)格呢?
A1:工具→文件夾選項(xiàng)→文件類型(Win7中是設(shè)置默認(rèn)程序)
找到DSW文件,高級(jí)(可能先還原)→編輯,用于執(zhí)行操作的應(yīng)用程序由"C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/devenv.exe" "%1"更改為"C:/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin/MSDEV.EXE" "%1",這樣默認(rèn)*.dsw文件就以VC6.0打開(kāi),而不是以VC8.0打開(kāi)。同樣更改*.dsp文件類型以用VC6打開(kāi),當(dāng)然可以更改顯示圖標(biāo)為VC6風(fēng)格的。
Q2:雙擊VC項(xiàng)目文件(*.sln/*.dsw),并沒(méi)有打開(kāi)一個(gè)新的IDE窗口,而是替代了已經(jīng)打開(kāi)的項(xiàng)目。
A2:工具→文件夾選項(xiàng)→文件類型(Win7中是設(shè)置默認(rèn)程序)
找到DSW/SLN文件,高級(jí)(可能先還原)→編輯,勾掉“使用DDE”。
?
二.預(yù)處理宏
1.?通用宏
VC6.0中:
Project Setting→C/C++→Preprocessor definitions
VC2005中:
項(xiàng)目屬性→配置屬性→C/C++→預(yù)處理器定義
(1)平臺(tái)識(shí)別宏
WIN32:指明是Window 32位系統(tǒng)平臺(tái)。
常見(jiàn)的平臺(tái)識(shí)別宏如下:
_DOS_:MS-DOS 16位系統(tǒng)平臺(tái)。
WIN64:指明是Window 64位系統(tǒng)平臺(tái)。
_WIN32_WCE:Window Mobile 32位系統(tǒng)平臺(tái)。
_UNIX:UNIX系統(tǒng)平臺(tái)。
_POSIX_:POSIX(Portable Operating System Interface of Unix)系統(tǒng)平臺(tái)。
_LINUX_:LINUX系統(tǒng)平臺(tái)。
_APPLE_/_MAC_:蘋果(Macintosh)系統(tǒng)平臺(tái)。
(2)字符集識(shí)別宏
_MBCS/_UNICODE:指明該工程使用的字符集(多字節(jié)字符集/UNICODE)。
在VC6.0的“Project Setting→C/C++→Project Options”處將會(huì)有/D "_MBCS"或/D "_UNICODE"開(kāi)關(guān)。
在VC2005的“項(xiàng)目屬性→配置屬性→常規(guī)→項(xiàng)目默認(rèn)值→字符集”中選擇“使用多字節(jié)字符集”或“使用?Unicode?字符集”;在“項(xiàng)目屬性→配置屬性→C/C++→使用UNICODE響應(yīng)文件”中選擇“是”或“否”。在“項(xiàng)目屬性→配置屬性→C/C++→命令行”?處將會(huì)有/D "_MBCS"或/D "_UNICODE" /D "UNICODE"開(kāi)關(guān)。
當(dāng)項(xiàng)目中的文件具有?UNICODE?路徑(例如中文路徑)時(shí),應(yīng)在“項(xiàng)目屬性→C/C++→常規(guī)”和“項(xiàng)目屬性→鏈接器→常規(guī)”中開(kāi)啟“使用UNICODE響應(yīng)文件”開(kāi)關(guān)。
(3)UI識(shí)別宏
_CONSOLE/_WINDOWS:指明應(yīng)用程序的類型是控制臺(tái)程序或窗口程序(CUI/GUI)。
(4)debug/release版本識(shí)別宏
_DEBUG/NDEBUG:指明編譯版本(Debug/Release)。
2.項(xiàng)目類型特定宏
VC不同的項(xiàng)目類型,有一些特定的宏,以在編譯器區(qū)分項(xiàng)目類型。
(1)Win32 Static Library項(xiàng)目
VC6.0中:
Project Setting→C/C++(Category:General)→Preprocessor definitions:_LIB
如果選擇了MFC Support則_WINDOWS,_AFXDLL
VC2005中:
項(xiàng)目屬性→常規(guī)→配置類型→靜態(tài)庫(kù)(.lib)
項(xiàng)目屬性→C/C++→預(yù)處理器→預(yù)處理器定義:_LIB
(2)Win32 Dynamic-Link Library項(xiàng)目
VC6.0中:
Project Setting→C/C++→Preprocessor definitions:_WINDOWS,_USRDLL,DLL_EXPORTS
VC2005中:
項(xiàng)目屬性→常規(guī)→配置類型→動(dòng)態(tài)庫(kù)(.dll)
項(xiàng)目屬性→C/C++→預(yù)處理器→預(yù)處理器定義:_WINDOWS;_USRDLL;DLL_EXPORTS
(3)MFC DLL項(xiàng)目
<1>Regular DLL with MFC statically linked(帶靜態(tài)鏈接MFC的規(guī)則DLL)
VC6.0中:
Project Setting→C/C++→Preprocessor definitions:_WINDOWS,_WINDLL,_USRDLL
VC2005中:
項(xiàng)目屬性→C/C++→預(yù)處理器→預(yù)處理器定義:_WINDOWS;_USRDLL
<2>Regular DLL using shared MFC DLL(使用共享MFC DLL的規(guī)則DLL)
VC6.0中:
Project Setting→C/C++→Preprocessor definitions:_WINDOWS,_WINDLL,_AFXDLL, _USRDLL
VC2005中:
項(xiàng)目屬性→C/C++→預(yù)處理器→預(yù)處理器定義:_WINDOWS;_USRDLL
<3>MFC Extension DLL(using shared MFC DLL)(MFC擴(kuò)展DLL)
VC6.0中:
Project Setting→C/C++→Preprocessor definitions:_WINDOWS,_WINDLL,_AFXDLL,_USRDLL
VC2005中:
項(xiàng)目屬性→C/C++→預(yù)處理器→預(yù)處理器定義:_WINDOWS;?_AFXEXT
在DLL項(xiàng)目中,_USRDLL宏表示生成Export Lib!
3.其他常用宏
__FILE__/__LINE__:
__FILE__為包含當(dāng)前程序文件名的路徑字符串,例如C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE/stdio.h;__LINE__為當(dāng)前程序代碼行號(hào),從1開(kāi)始的整數(shù)。
__STDC__/__cplusplus:
當(dāng)編譯標(biāo)準(zhǔn)C?(ANSI C)程序時(shí),編譯器自動(dòng)定義__STDC__?;當(dāng)編譯標(biāo)準(zhǔn)C++?程序時(shí),編譯器自動(dòng)定義__cplusplus。
_MSC_VER:Microsoft Visual C++編譯器的版本號(hào)。例如VC++6.0為1200,VC++8.0為1400,以此類推。
WIN32_LEAN_AND_MEAN告訴編譯器不加載MFC(Not Using MFC)。
?
關(guān)于VC編譯器預(yù)處理宏,參考:
《AFXDLL?和?_AFXEXT》
《Predefined Macros(VC6.0)》
《C/C++ Preprocessor Reference-Predefined Macros(VC8.0)》
《What’s the difference between the WIN32 and _WIN32 defines in C++》
?
三.工作目錄和控制臺(tái)程序運(yùn)行參數(shù)
VC6.0中:
“Project Setting→Debug→Working directory”處填寫exe程序的工作目錄。
在“Project Setting→Debug→Program argument”處填寫main運(yùn)行參數(shù)。
VC2005中:
在“項(xiàng)目屬性→配置屬性→調(diào)試→工作目錄”處填寫exe程序的工作目錄。
在“項(xiàng)目屬性→配置屬性→調(diào)試→命令參數(shù)”處填寫main運(yùn)行參數(shù)。
?
默認(rèn)的工作目錄為ProjectDir,即*.dsp/*.vcproj所在目錄。
通過(guò)編譯器啟動(dòng)(Ctrl + F5)應(yīng)用程序時(shí),可以將所依賴的lib和dll庫(kù)文件所在目錄設(shè)為工作目錄。應(yīng)用程序執(zhí)行期間,文件操作的默認(rèn)路徑為工作目錄。
工作目錄是指當(dāng)前目錄,GetCurrentDirectory()得到的路徑;SetCurrentDirectory來(lái)改變。
運(yùn)行目錄是指exe所在路徑,可通過(guò)GetModuleFileName()得到。
?
四.附加頭文件包含
VC6.0中:
VC6.0默認(rèn)include包含路徑:Tools→Options→Directories→Include files。
對(duì)于特定項(xiàng)目的頭文件包含,在“Project Setting→C/C++(Category:Preprocessor)→Additional include directories”處添加附加頭文件目錄,相對(duì)目錄參考*.dsp文件。
目錄路徑不需添加雙引號(hào),路徑分隔符為’/’或’/’,不必考慮反斜杠’/’的轉(zhuǎn)義。多個(gè)路徑之間以逗號(hào)分隔。
相應(yīng)的在“Project Setting→C/C++→Project Options”中將會(huì)出現(xiàn)“/I”的包含命令。
VC2005中:
VC2005默認(rèn)include包含路徑:工具→選項(xiàng)→項(xiàng)目和解決方案→VC++目錄→包含文件。
對(duì)于特定項(xiàng)目的頭文件包含,在“項(xiàng)目屬性→配置屬性→C/C++→常規(guī)→附加包含目錄”處添加附加包含目錄,相對(duì)目錄參考$ProjectPath(*.vcproj文件路徑)。
目錄路徑不需添加雙引號(hào),路徑分隔符為’/’或’/’,不必考慮反斜杠’/’的轉(zhuǎn)義。多個(gè)路徑之間以分號(hào)分隔。
相應(yīng)的在“項(xiàng)目屬性→配置屬性→C/C++→命令行”?中將會(huì)出現(xiàn)“/I”的包含命令。
關(guān)于#include的兩種包含方式
#include?<std*.h>為編譯器指定的包含路徑下的頭文件:即在VC6.0中的“Tools→Options→Directories→Include files”(對(duì)應(yīng)VC2005的“工具→選項(xiàng)→項(xiàng)目和解決方案→VC++目錄→包含文件”)處指定的包含目錄。默認(rèn)情況下包括
(1)$(VCInstallDir)include(/Microsoft Visual Studio/VC98/INCLUDE)
(2)$(VCInstallDir)atlmfc/include(/Microsoft Visual Studio/VC98/ATL/INCLUDE、/Microsoft Visual Studio/VC98/MFC/INCLUDE)
(3)$(VCInstallDir)PlatformSDK/include(VC2005)。
對(duì)于“Tools→Options→Directories→Include files”(“工具→選項(xiàng)→項(xiàng)目和解決方案→VC++目錄→包含文件”)目錄下的文件的包含,一般可使用尖括號(hào)包含。系統(tǒng)對(duì)尖括號(hào)的包含優(yōu)先到編譯器設(shè)置的包含路徑下定位,再到附加包含目錄下進(jìn)行定位。
#include?"MyHeader.h"為在“Tools→Options→Directories→Include files”(“工具→選項(xiàng)→項(xiàng)目和解決方案→VC++目錄→包含文件”)處人工添加的包含路徑下的頭文件或者附加包含目錄下的頭文件。
對(duì)于編譯器提供的標(biāo)準(zhǔn)庫(kù)函數(shù)頭文件(“Tools→Options→Directories→Include files”(“工具→選項(xiàng)→項(xiàng)目和解決方案→VC++目錄→包含文件”)),一般使用尖括號(hào)進(jìn)行包含聲明,當(dāng)然使用雙引號(hào)包含也沒(méi)有錯(cuò)。
對(duì)于在“Tools→Options→Directories→Include files”(“工具→選項(xiàng)→項(xiàng)目和解決方案→VC++目錄→包含文件”)處人工添加的包含路徑和附加包含目錄下的頭文件的包含可以使用尖括號(hào)進(jìn)行包含,但一般使用雙引號(hào)。
原則上,對(duì)于工程或文件可見(jiàn)的包含目錄下的頭文件包含,使用以上兩種包含方式中的任一種都不會(huì)出錯(cuò),主要是它們?cè)谒阉髂夸洉r(shí)的順序不一樣。習(xí)慣上使用尖括號(hào)包含標(biāo)準(zhǔn)庫(kù)函數(shù)頭文件,使用雙引號(hào)包含用戶自定義頭文件。
一般針對(duì)具體工程使用附加頭文件包含即可,不必去動(dòng)編譯器的“Tools→Options→Directories→Include files”(對(duì)應(yīng)VC2005的“工具→選項(xiàng)→項(xiàng)目和解決方案→VC++目錄→包含文件”)。但是,對(duì)于像DirectX、wxWidgets等這樣的SDK,一般宜對(duì)include/library路徑作編譯器級(jí)全局配置,同時(shí)指定相應(yīng)source路徑,以便做源碼級(jí)調(diào)試(F11進(jìn)入SDK內(nèi)部代碼)。下面的鏈接庫(kù)包含情同此理。
External Dependencies里面顯示的是你的工程要用到的頭文件,不在你的工程里面,而且也不在VC的默認(rèn)包含路徑中。參考:《VC6.0的External Dependencies》。
?
五.附加鏈接庫(kù)包含
VC6.0中:
VC6.0默認(rèn)lib包含路徑:Tools→Options→Directories→Library files
對(duì)于特定項(xiàng)目的頭文件包含,可以通過(guò)以下兩步添加附加鏈接庫(kù):
1.?在“Project Setting→Link(Category:Input)→Additional library path”處添加附加庫(kù)目錄,相對(duì)目錄參考*.dsp文件。
目錄路徑不需添加雙引號(hào),路徑分隔符為’/’或’/’,不必考慮反斜杠’/’的轉(zhuǎn)義。多個(gè)路徑之間以逗號(hào)分隔。
相應(yīng)的將會(huì)在“Project Setting→Link→Project Options”處同步“/libpath”庫(kù)包含命令。
2.?在“Project Setting→Link(Category:General)→Object/Library Modules”?處添加庫(kù)文件名YourLib.lib(也可在文件中使用#pragma?comment(lib,?"YourLib.lib")顯式導(dǎo)入所依賴的靜態(tài)庫(kù)),多個(gè)庫(kù)之間以空格分隔。
相應(yīng)的將會(huì)在“Project Setting→Link→Project Options”處同步包含的庫(kù)名稱。
VC2005中:
VC2005默認(rèn)lib包含路徑:工具→選項(xiàng)→項(xiàng)目和解決方案→VC++目錄→庫(kù)文件
對(duì)于特定項(xiàng)目的庫(kù)文件包含,可以通過(guò)以下兩種方式添加附加庫(kù)目錄:
1.
(1)在“項(xiàng)目屬性→配置屬性→鏈接器→常規(guī)→附加庫(kù)目錄”處輸入附加庫(kù)目錄路徑,相對(duì)目錄參考$ProjectPath(*.vcproj文件路徑)。
目錄路徑不需添加雙引號(hào),路徑分隔符為’/’或’/’,不必考慮反斜杠’/’的轉(zhuǎn)義。多個(gè)路徑之間以分號(hào)分隔。
相應(yīng)的將會(huì)在“項(xiàng)目屬性→配置屬性→鏈接器→命令行”處同步“/LIBPATH”庫(kù)包含命令。
(2)在“項(xiàng)目屬性→配置屬性→鏈接器→輸入→附加依賴項(xiàng)”?處添加庫(kù)文件名YourLib.lib(也可在文件中使用#pragma comment(lib, "YourLib.lib")顯式導(dǎo)入所依賴的靜態(tài)庫(kù)),多個(gè)庫(kù)之間以空格分隔。
相應(yīng)的將會(huì)在“項(xiàng)目屬性→配置屬性→鏈接器→命令行”處同步包含的庫(kù)名稱。
2.
在“項(xiàng)目屬性→配置屬性→鏈接器→命令行”?處添加庫(kù)文件名YourLib.lib(必要時(shí)添加相對(duì)目錄,保證YourLib的可見(jiàn)性)。
?
六.生成文件目錄設(shè)置
VC6.0中:
在“Project Setting→General→Output directories”的“Output files”處填寫*.exe或*.lib/*.dll的生成目錄,相應(yīng)在“Project Setting→Link(或Library)→Output file name”處將會(huì)同步文件輸出路徑。相對(duì)目錄參考*.dsp文件。
在“Project Setting→General→Output directories”的“Intermediate files”處填寫中間文件生成目錄。相對(duì)目錄參考*.dsp文件。
VC2005中:
在“項(xiàng)目屬性→常規(guī)→輸出目錄”處填寫輸出目錄,在“項(xiàng)目屬性→常規(guī)→中間目錄”處填寫中間目錄,相對(duì)目錄參考$ProjectPath(*.vcproj文件路徑)。
在“項(xiàng)目屬性→鏈接器(或管理員)→常規(guī)→輸出文件”處填寫輸出文件路徑。
輸出目錄(OutDir)一般為$(SolutionDir)$(ConfigurationName)
輸出文件(OutputFile)一般為$(OutDir)/$(ProjectName).exe(*.lib,*.dll)
1.環(huán)境變量宏說(shuō)明
$(SolutionDir)為*.sln文件所在文件夾,尾帶‘/’;
$(ProjectDir)為*.vcproj文件所在文件夾,尾帶‘/’;
$(PlatformName)為平臺(tái)名稱,例如Win32,Windows Mobile 6 Professional SDK(ARMV4I)。
$(ConfigurationName)為*.sln的*.vcproj文件所在文件夾下的debug、release文件夾,參考*.vcproj文件中的<Configurations>配置項(xiàng)。
具體在“項(xiàng)目屬性→配置屬性→調(diào)試→命令”下拉點(diǎn)擊“編輯”,展開(kāi)“宏(M)>>”,可以看到很多項(xiàng)目?jī)?nèi)置宏。
2.生成目錄的配置
輸出目錄(OutDir):$(ProjectDir)$(PlatformName)/$(ConfigurationName)
以上穿插$(PlatformName)主要是為了發(fā)布多平臺(tái)版本考慮,對(duì)于普通的單平臺(tái)開(kāi)發(fā),該路徑可選。
TargetDIr為OutDir后加‘/’。
輸出文件主要按項(xiàng)目區(qū)分如下:
(1)DLL項(xiàng)目:*.pdb,*.exp,*.lib
(2)EXE項(xiàng)目:*.pdb
中間目錄(IntDir):$(OutDir)/Intermediate
中間文件包括*.pch,*.obj,(*.sbr),vc6(8)0.idb,vc6(8)0.pdb
輸出文件:$(OutDir)/$(ProjectName).lib(dll、exe)
(1)DLL項(xiàng)目:*.ilk,*.dll
(2)EXE項(xiàng)目:*.ilk,*.exe
關(guān)于*.pch,參考《預(yù)編譯頭文件》;注意*.ilk和*.pdb文件只有在Debug版本時(shí)才會(huì)生成,關(guān)于*.ilk和*.pdb,參考《VC項(xiàng)目配置基礎(chǔ)》。
一般一個(gè)大的工程(*.dsw,*.sln),同時(shí)含有LIB、DLL和EXE項(xiàng)目,習(xí)慣將LIB輸出到項(xiàng)目輸出目錄或?qū)⑦@些鏈接時(shí)用到的LIB放到專門的目錄;EXE和其運(yùn)行依賴的DLL都輸出到BIN目錄,這樣便于項(xiàng)目的組織和最終成果的發(fā)布。
?
七.關(guān)于相對(duì)目錄
相對(duì)目錄是相對(duì)某個(gè)文件而言的,例如在VC項(xiàng)目屬性配置附加包含目錄、附加庫(kù)目錄則是相對(duì)*.dsp、*.vcproj文件而言的;在某個(gè)*.c、*.cpp文件中使用#include包含命令,是相對(duì)這個(gè)*.c、*.cpp文件而言的。
當(dāng)前目錄是可見(jiàn)的,一般直接引用文件名(夾),對(duì)于子文件夾可以添加”./”。
..:父目錄
../include:父目錄下的include目錄
../..:祖父目錄
../../include:祖父目錄下的include目錄
在VC2005中,“屬性窗口”可查看當(dāng)前文檔的“文件信息”,其中可查看文件相對(duì)*.vcproj的相對(duì)路徑。
?
八.依賴項(xiàng)目聯(lián)編
一個(gè)解決方案(dsw、sln)可以創(chuàng)建很多輔助子項(xiàng)目(dsp、vcproj),如何設(shè)置使在編譯主項(xiàng)目的時(shí),先編譯所依賴的輔助項(xiàng)目呢?
一般會(huì)配置輔助子項(xiàng)目的OutDir和主項(xiàng)目相同,這樣生成的lib或dll對(duì)于主項(xiàng)目exe直接可見(jiàn)。
VC6.0中:
選擇菜單“Project→Dependencies”可以選擇需要聯(lián)編的項(xiàng)目。
VC2005中:
在解決方案資源管理器中右擊項(xiàng)目名稱,選擇“引用”或“項(xiàng)目依賴項(xiàng)”菜單可添加(選擇)引用依賴項(xiàng)目;選擇“項(xiàng)目生成順序”可查看建立項(xiàng)目依賴后的項(xiàng)目生成順序。
?
建立依賴關(guān)系后,主項(xiàng)目編譯(F7,Build)時(shí),若發(fā)現(xiàn)輔助依賴子項(xiàng)目有改動(dòng),則會(huì)先編譯子項(xiàng)目。
?
九.附加DLL調(diào)試
VC6.0中:
如果你需要調(diào)試的DLL是動(dòng)態(tài)裝入(LoadLibrary)的,則需要在“Project Setting →Debug(Category:Additional DLLs)”處添加這個(gè)DLL文件。
Place a check in the first column to load the module’s symbols at the start of a debug session.
?
十.導(dǎo)出makefile
VC6.0中選擇菜單“Project→Export Makefile”即可導(dǎo)出Makefile文件*.mak。
VC6以后不再支持makefile輸出了。
參考:《VC的MAKE文件的語(yǔ)法》,《vs6 IDE導(dǎo)出的makefile使用方法》,《教你在VS2005下寫MakeFile》
?
十一.代碼的編輯與閱讀導(dǎo)航
Visual Studio本身就帶有充分的代碼組織、編輯、分析以及閱讀能力的支持。
VC6.0的“Project Settings→C/C++→Generate Browse info”和“Project Settings→Browse info→Build browse info file”可生成向?qū)募?#xff0c;FileView和ClassView需要這些信息導(dǎo)航。
VC6.0和VC2005中的“Edit→Find in Files”支持指定項(xiàng)目、工程或文件內(nèi)的關(guān)鍵字搜索。
VC6.0的“Tools→Source Browser”(Alt+F12),提供對(duì)“Definitions and References”、“File Outline”、“Base Classes and Members”、“Derived Classes and Members”、“Call Graph”、“Callers Graph”等導(dǎo)航功能支持。VC2005側(cè)邊欄“類視圖”中支持顯示“基類型”、“派生類型”、“繼承成員”等功能,右鍵快捷菜單中的“調(diào)用瀏覽器”支持函數(shù)調(diào)用關(guān)系圖和被調(diào)用關(guān)系圖的查看。
編輯時(shí),VC6右鍵快捷菜單支持“List Members”、“Parameter Info”、“Type Info”、“Complete Word”。對(duì)應(yīng)VC2005文本編輯器工具欄中的“顯示對(duì)象成員列表”、“顯示參數(shù)信息”、“顯示快速信息”、“顯示文字自動(dòng)完成”。
VC2005右鍵快捷菜單中支持“查找所有引用”,配合代碼定義窗口,可很方便地瀏覽代碼。VC2005標(biāo)準(zhǔn)工具欄中的“向后定位/向前定位”支持定位功能。此外,在閱讀代碼時(shí),我們可以使用書(shū)簽(Bookmark)來(lái)設(shè)置錨點(diǎn),這樣就可以實(shí)現(xiàn)基于書(shū)簽的自定義索引導(dǎo)航。
下面介紹常用的編程輔助插件軟件及源代碼層次結(jié)構(gòu)分析工具軟件。
1.Visual Assist X是一款非常好的Microsoft Visual Studio輔助插件,支持C/C++,C#,ASP,Visual Basic,Java和HTML等語(yǔ)言,能自動(dòng)識(shí)別各種關(guān)鍵字、系統(tǒng)函數(shù)、成員變量、自動(dòng)給出輸入提示、自動(dòng)更正大小寫錯(cuò)誤、自動(dòng)標(biāo)示錯(cuò)誤等,有助于提高開(kāi)發(fā)過(guò)程的自動(dòng)化和開(kāi)發(fā)效率。例如VA Outline中右鍵→Refactor→Rename能夠快速更新變量命名。
2.Windows下的Source Insight是一個(gè)面向項(xiàng)目開(kāi)發(fā)的程序編輯器和代碼導(dǎo)航瀏覽器,它還能顯示reference trees,class inheritancediagrams和call trees。相應(yīng)的Linux下閱讀源代碼的利器Source Navigator能很好地解決文件定位和跳轉(zhuǎn)問(wèn)題。
3.Rational Rose是利用UML(統(tǒng)一建模語(yǔ)言)進(jìn)行分析和設(shè)計(jì)面向?qū)ο筌浖到y(tǒng)的強(qiáng)大的可視化工具,可以進(jìn)行項(xiàng)目需求分析、結(jié)構(gòu)規(guī)劃和生成框架代碼,還可以支持從現(xiàn)有系統(tǒng)逆向轉(zhuǎn)出工程代碼,生成Rose模型的功能。
逆向工程(Reverse Engineer)就是從現(xiàn)有系統(tǒng)的代碼來(lái)生成模型的功能。通過(guò)Rational Rose分析已有的代碼,可了解代碼結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),生成類層次關(guān)系圖、數(shù)據(jù)模型圖和組件圖。
?
十二. VC常用快捷鍵
Alt+F7:Project Settings
?
Ctrl+J/K:尋找上一個(gè)/下一個(gè)預(yù)編譯條件
Ctrl+Shift+J/K:尋找上一個(gè)/下一個(gè)預(yù)編譯條件并將這一塊選定
?
Ctrl+Tab:當(dāng)前打開(kāi)文檔和上一次打開(kāi)文檔切換。
Alt+O:頭文件與cpp文件的交互顯示
F12:Goto definition
Shift+F12:Goto reference
?
Ctrl+Home:文檔頭
Ctrl+Shift+Home:選定從當(dāng)前位置到文檔頭
Ctrl+End:文檔尾
Ctrl+Shift+End:選定從當(dāng)前位置到文檔尾
Alt+F8:自動(dòng)格式重排
Ctrl+F4:關(guān)閉當(dāng)前文檔
?
Ctrl+Z/Alt+Backspace:Undo
Ctrl+Shift+Z/Ctrl+Y:Redo
?
Ctrl+B/Alt+F9:編輯斷點(diǎn)
Ctrl+Shift+F9:去掉所有斷點(diǎn)
?
Ctrl+D:定位工具條查找輸入欄
Alt+F3/Ctrl+F:當(dāng)前文檔查找
Ctrl+F3:查找下一個(gè)
Ctrl+Shift+F3:查找上一個(gè)
Ctrl+H:替換
Ctrl+]:括號(hào)匹配
?
Ctrl+↑:向上滾屏
Ctrl+↓:向下滾屏
Ctrl+←:移到前一個(gè)單詞
Ctrl+→:移到后一個(gè)單詞
Ctrl+Shift+←:選定當(dāng)前位置到前一個(gè)單詞
Ctrl+Shift+→:選定當(dāng)前位置到后一個(gè)單詞
Ctrl+Shift+]:括號(hào)匹配塊選
Ctrl+Shift+F8:配合鼠標(biāo)和方向鍵實(shí)現(xiàn)豎直塊選
?
Ctrl+Backspace:刪除當(dāng)前單詞的前半截(以光標(biāo)為分割)
Ctrl+Del:刪除當(dāng)前單詞的后半截(以光標(biāo)為分割)
Ctrl+L:剪切當(dāng)前行
Ctrl+Shift+L:刪除當(dāng)前行
?
F2:上一個(gè)書(shū)簽
Shift+F2:上一個(gè)書(shū)簽
Alt+F2:編輯書(shū)簽
Ctrl+F2:添加/刪除一個(gè)書(shū)簽
Ctrl+Shift+F2:清除所有書(shū)簽
?
參考:
《VC的環(huán)境設(shè)置》
《VC IDE使用技巧》
《VC的工程文件說(shuō)明》
《VC6.0工程設(shè)置介紹》
《Visual C++ 6.0環(huán)境配置》
《你可能還不熟悉的VC6.0 IDE》
《VC 2005?解決方案的目錄結(jié)構(gòu)設(shè)置和管理》
《Managing Solutions, Projects, and Files》
《File Types Created for Visual C++ Projects》
總結(jié)
以上是生活随笔為你收集整理的VC6.0和VC2005项目配置详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 分享四款H5怀旧小游戏魔塔+伏魔记+三国
- 下一篇: 测试环境搭建-7:安装loadrunne