VS2008 入門基本操作


VS2008 入門操作

更新日期:2011-7-31
測試環境:VS2008+WinXP

━━━━━━━━━━━━━━━━━━━━━━━━

這段時間正式開始使用VS2008。從VC6過度到VS2008還真的有點不習慣。
下面列出一些常用操作,希望有所幫助。
以下只是個入門的初級教程,高手請跳過

列出一些常規的操作:
━━━━━━━━━━━━━━━━━━━━━━━━
把默認的Unicode工程改回ANSI工程
設置快捷鍵
修改資源ID
項目依賴(對於含有dll的工程,項目依賴是很有用的,每次都可以編譯所以項目)
打開資源(對話框或控件)
去除編譯時字符串安全警告
刪除一個消息映射
設置Code Generation裏面的Runtime Library
設置生成的程序文件名
設置輸出路徑 (放置編譯鏈接生成的中間文件的文件夾) 
設置預定義宏
設置編輯器字體顏色
添加外部工具(程序)
添加資源
爲類添加消息映射
解決VS2008找不到MFC90d.dll錯誤
複製項目資源(對話框資源)到另外一個項目
設置要包含的頭文件和庫文件 

自己寫了個VS插件,實現一些簡單的功能
━━━━━━━━━━━━━━━━━━━━━━━━
(1)在VC6的代碼編輯窗口最左邊欄點擊時,會選擇文本,但來到VS就變成添加斷點了。所以插件實現
     了點擊代碼編輯窗口左邊欄時選擇文本的功能。
(2)實現源文件和頭文件之間的快速切換 (操作方法-》在左邊欄點擊右鍵彈出菜單)
(3)跳轉到上一次鼠標點擊的行號    (這個未能實現,效果不好)
(4)註釋掉代碼 (爲添加/* */,如果已經有/* */,就去掉。操作方法-》在左邊欄點擊右鍵彈出菜單)
(5)雙擊標籤頁可以關掉窗口

 上午花了時間把插件的資料整理好了,希望對你有所幫助(2011-7-31)
下載插件源代碼和學習資料:http://hi.baidu.com/qiujiejia/blog/item/6f3b27fc9f703f98b901a0c5.html


把默認的Unicode工程改回ANSI工程
━━━━━━━━━━━━━━━━━━━━━━━━
VS2008新建的工程默認是Unicode的,
所以我們如果把VC的工程代碼複製後放到VS2008編譯就可能會出錯。
如果我們需要改回ANSI,需要做以下設置

(1)相應編譯宏的設定。如果使用Unicode字符集,需要定義預編譯宏UNICODE和
_UNICODE兩個;而使用ANSI字符集,不需要這個。具體修改方式爲:ALT+F7打開工程選項,選擇
C++欄目,再選擇裏頭的PreProcessor欄目,在裏頭的PreProcessor defines中去掉默認的
Unicode和_UNICODE的定義。注意,在此欄目中我們並沒有看到對應的兩個定義,這個是通過繼承
而來了,只要我們不要勾那個"inherit from parent..."即可。注意,設置完畢之後,另外需要手動將
_AFXDLL宏和宏_MBCS 用分號添加到PreProcessor defines。

(2)到此工作完成一半,此時編譯提示link出錯,找不到入口函數(實際上入口函數不對)。這
裏需要修改入口函數(其實這個是受原作者啓發的)。修改方式:ALT+F7打開工程選項,選擇
Link欄目,然後選擇Advanced,第一個屬性就是Entry Point,修改爲WinMainCRTStartup即
可。好像Unicode版本是wWinMainCRTStartup。

(3)注意每次Alt+F7彈出設置對話框要把debug版本和release版本都設置。






去除編譯時字符串安全警告
當我們把舊的VC工程轉換VS2008工程後編譯,常常會出現一大堆編譯警告,
如:warning C4996: '_itoa': This function or variable may be unsafe. Consider using 
_itoa_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

 方法一:你也可以使用下面的小工具快速添加_CRT_SECURE_NO_WARNINGS,只需要將工程下的“.vcproj ”拖動
        到程序的界面即可。下載:ModifyProjectFile.exe 源代碼:ChangeSln_SourceCode.zip (請不要使用下載工具,否則可能出錯)

方法二:如下: 
━━━━━━━━━━━━━━━━━━━━━━━━



設置快捷鍵
VS的添加快捷鍵乖乖的,要自己輸入命令。開始弄了好久都沒有成功。
━━━━━━━━━━━━━━━━━━━━━━━━



修改資源ID
━━━━━━━━━━━━━━━━━━━━━━━━




項目依賴(對於含有dll的工程,項目依賴是很有用的,每次都可以編譯所以項目)
━━━━━━━━━━━━━━━━━━━━━━━━



打開資源(對話框或控件)
━━━━━━━━━━━━━━━━━━━━━━━━






刪除一個消息映射
這好像退步了,在VC裏只要簡單的右鍵刪除函數就可以了,而在VS2008裏要刪除一個函數或消息映射卻
很麻煩。刪除函數好像沒有什麼好方法,手動刪除吧。
(以後看插件能否實現快速刪除一個函數的功能)
━━━━━━━━━━━━━━━━━━━━━━━━



設置Code Generation裏面的Runtime Library
━━━━━━━━━━━━━━━━━━━━━━━━



設置生成的程序文件名
━━━━━━━━━━━━━━━━━━━━━━━━



設置輸出路徑 (放置編譯鏈接生成的中間文件的文件夾) 
━━━━━━━━━━━━━━━━━━━━━━━━




設置需要包含的頭文件和庫文件
━━━━━━━━━━━━━━━━━━━━━━━━


設置預定義宏
━━━━━━━━━━━━━━━━━━━━━━━━



設置編輯器字體顏色
━━━━━━━━━━━━━━━━━━━━━━━━




添加外部工具(程序)
━━━━━━━━━━━━━━━━━━━━━━━━



添加資源
━━━━━━━━━━━━━━━━━━━━━━━━


爲類添加消息映射
━━━━━━━━━━━━━━━━━━━━━━━━



解決VS2008找不到MFC90d.dll錯誤(資料來自網絡)
━━━━━━━━━━━━━━━━━━━━━━━━
 VS 2005/VS 2008在生成可執行文件時使用了一種新的技術,該技術生成的可執行文件會伴隨生成一個清單文件(manifest file)(.manifest後綴文件)(其本質上是XML文檔,你可以用文本編輯器打開看看),並在鏈接完成後將該清單文件嵌入到exe文件中(默認情況下)。而在FAT32文件系統中,在處理清單文件階段,當增量鏈接時不能完成清單文件的更新(默認情況下),於是造成清單文件嵌入失敗,從而使該exe文件運行時沒有相應的清單文件而運行失敗並提示如上錯誤。
 解決方案很多,列舉如下:
 1. 由於這是在鏈接動態運行庫出現的問題,所以你可以選擇代碼生成的連接方式爲 /MTd 而非 /MDd ,不用這些DLL文件從而避免問題的出現。該方法有一個很顯然的缺點:適用範圍有限,不推薦該方法。
 注:/MT /MTD MD /MDD 之間的關係可以參見 VC運行庫版本不同導致鏈接.LIB靜態庫時發生重複定義問題的一個案例分析和總結;另外如果使用/MT 或者/MTD 那麼生成的文件的尺寸基本上是使用/MD 或者/MDD的10倍大小
 2. 既然跟FAT32系統有關,那麼我們可以選擇在NTFS文件系統中開發從而避免該問題,此方法同上,也是採用的迴避問題的方式,不提倡。(我個人推薦使用這種方法)
 3. 該方法仍與FAT32有關:在項目的“屬性|配置屬性|清單工具|常規(Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library)”中的“使用FAT32解決辦法”選擇“是”(默認爲“否”),重新生成項目即可解決問題。該方法是唯一真正針對問題所在而提出的解決方法,使清單工具可以正確更新。(此方法是官方解決方法,也比較方便,推薦)
 4. 既然問題是在更新嵌入的清單文件時發生的,由於FAT32的原因而未能更新嵌入的清單文件,於是我們有如下兩種解決方法:
 (1)不啓用增量鏈接。在項目的“屬性|配置屬性|鏈接器|常規”中的“啓用增量鏈接”選擇“否”。此方法阻斷了問題產生的源頭,其每次生成exe文件時都直接嵌入清單文件,而不是默認的根據時戳而決定是否更新清單文件。
 (2)不嵌入清單文件。在項目的“屬性|配置屬性|清單工具|輸入和輸出”中的“嵌入清單”選擇“否”,從而在生成exe文件時附隨生成一個清單文件(默認情況下,其文件名爲exe文件的全名加上“.manifest”),避免了嵌入清單文件可能失敗的問題。在程序運行時,會用到該清單文件。顯然,這種方式使可執行程序產生了更多的外部依賴,不推薦。
 另外,還有一個不能稱爲方法的土辦法:每次Build前手動刪除*.ilk文件(增量鏈接文件)(當然可以在項目屬性中寫入刪除命令,使其自動執行),不推薦該土辦法。
 最後,總結一下:
 1. 此問題只在特定條件下才會出現:在FAT32文件系統中編譯、默認設置(增量模式、不啓用FAT32解決方案、嵌入清單文件)、非第一次生成可執行文件文件(即在增量連接、更新清單文件時)。(注意)
 2. 解決方案1和4.1方便實用,推薦使用。
 ps:我個人認爲解決這個問題的最好方法就是使用vc2005/vc2008的時候,在ntfs文件系統上進行開發(也就是第2種方法)。當前的絕大多數軟件在ntfs文件系統都能夠正常的運行(即便是dos類的工具也能在ntfs文件系統上良好的運行),爲什麼還要死抱着fat/fat32文件系統不放呢?
 另外要注意一個概念問題,“VC2008下提示找不到MSVCP90D.dll”這是屬於開發問題,是由於windows文件系統的bug(fat32的bug),導致vc2005/vc2008開發工具編譯出來的程序不能正常的運行。

 複製項目資源(對話框資源)到另外一個項目(資料來自網絡)
━━━━━━━━━━━━━━━━━━━━━━━━
若要將對話框資源從 Visual c + +.net 或 Visual c + + 2005年項目的資源文件複製到另一個 Visual c + +.net 或 Visual c + + 2005年項目的資源文件,請按照下列步驟操作。
注意:資源文件具有.rc 擴展名。
1、啓動 Visual Studio.net 或 Visual Studio 2005。 
2、在 文件 菜單上指向 打開,然後單擊 文件。 
3、找到源資源文件。 
4、單擊資源文件,然後單擊打開該文件的 打開。 
5、爲目標資源文件,請再執行步驟 2 到 4。 
6、若要切換到源資源文件,單擊包含此文件的文件名稱選項卡。 
7、展開文件夾具有與源資源文件的文件名相同的名稱。 
8、展開 對話框 文件夾。 
9、用鼠標右鍵單擊您要複製,對話框資源,然後單擊 複製。 
10、若要切換到目標資源文件,單擊包含此文件的文件名稱選項卡。 
11、用鼠標右鍵單擊具有與目標的資源文件的文件名相同的名稱的文件夾,然後單擊粘貼。 對話框資源將顯示在目標資源12、文件中的 對話框 文件夾中。 
13、請按 CTRL + SHIFT + S 鍵組合,以保存所有文件。 
14、在 “文件” 菜單上單擊 “關閉”解決方案以關閉解決方案。 

轉載自:http://hi.baidu.com/juanchen2/item/a1a67f4bbedcf212c0161343

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