打完補充:以下內容全部是我一家之言,只是願意分享,內容如有不妥還請見諒。
======================================================
剛才接收了一份代碼,龐大的sdf文件也傳過來了。如果咱們想分享一份代碼的話,其實只需要很少的文件即可。我把我對VS工程里各種文件的認識分享出來,如有錯誤還請指正,我也是一知半解,歡迎探討。
我以自己的C語課設為例,大家打開文件夾后,有這些:
第一個文件夾里就是源代碼。理論上,“ball_moving”是“項目”的名字。(因為我的這個工程只包含一個項目,咱們現階段的大部分工程皆是如此。所以寫單文件程序時,使用code::blocks等不需要工程的IDE會比較方便。)
第 二個.sln文件就是VS的工程文件。這個工程文件相當於是一個總目錄,它組織了整個工程的一些信息。.sln是VS2010/2012/2013 /2015等較新VS版本的工程文件,如果大家用的是VC6.0,那工程文件就是.dsw。請注意,VC6.0是無法打開.sln文件的。而用VS打 開.dsw也可能會遇到兼容性問題。所以推薦大家使用VS。
其實.sln文件也只是個文本文檔,里面的內容如圖所示,是可以隨意改的(霧)。
第三個就是大家熟悉的.doc文件了,它和這個工程沒什么關系,只是一個課設作業要求的手冊。說實話,我倒是極力建議大家在把自己的代碼給他人看之前,先為TA寫好一份簡單的程序流程說明。這樣可以節省雙方大量的時間。
咱們現在打開"ball_moving"文件夾。
如果你對我的課設有印象,你會記得我非常逗比地把每個函數都拆成了一個.cpp文件,所以為了反映普遍情況,咱們化簡如下:
第一個是.h文件,就是頭文件。這個頭文件里的內容,和咱們平時在int main()的上邊所寫的那些"聲明"並無二致。這樣寫是為了…較真。其實要是真的想較真的話,應該是一個.cpp文件(模塊)(編譯出的.lib)專配 一個.h文件(接口),暫且忽略這個逗比的事情。
第二個.cpp文件就是所有的源代碼啦。這個.cpp文件可以用任意文本編輯器修改。我極力建議大家不要用Word保存代碼,最好也別用txt文件保存代碼。尤其是你想把代碼發給別人/交作業等等情況。請保持對接收者的信任,用其他格式存代碼必然增加雙方的工作量。當然,這只是我的一種個人態(dou)度(bi),大可不必在意。
.dat 和 .csv 文件是…我選擇的存檔和榜單的格式,和文本文件沒啥區別,大家感興趣的話可以了解一下,用txt也行。選擇.dat的原因是一般情況下用戶就不會亂改了(霧)(別問我,這主意是投稿時候管理員給我提出來的),.csv的話是方便對成績進行排序。
然后ball_moving.rc 和 .ico文件是配套的。他們的全部使命就是給我的程序加上可愛、真誠、善良、勤勞、勇敢、美麗、溫柔、知性的二胡卵子(鳥)。如果你不想給程序加自定義圖標的話是沒有此類文件的。
再看比較重要的兩位。
vcxproj.filters是項目的虛擬目錄,也就是這個:(圖片來自網絡)
所以最好把它帶上。
.vcxproj想必你已經猜出它的功能了,它是項目的“目錄”,和.sln文件的作用差不多,所以也是一定要帶上的。
好了,以上文件就是一個VS的工程所必備的文件,總結來說:
.sln
項目名的文件夾
.vcxproj
.vcxproj.filters
(若干).cpp
(如果有).h
其他也許會存在的雜項
好了,如果是要交作業/把代碼共享給別人的話,這些文件就夠用了。
哪些文件不需要呢?
大家可能注意到了,工程文件夾下總是有個巨大無比的.sdf文件,體積(我見過的)從幾M到上百M不等。你要是問我它是干啥用的…我也不知道。大概跟調試有關吧,比如你在哪加了幾個斷點之類的信息。
那些.suo和.opensdf之類的文件,打包的時候刪掉就好。
另 外,工程文件夾里的Debug / Release 文件夾都是可以刪掉的,那些文件夾里是你編譯出的.exe以及等等輔助文件。VS里的“清理解決方案”的功能就類似於把這些文件夾清空。這些文件夾里的文 件…如果你真的感興趣的話。exe文件就是最后出來的可執行文件,.ilk文件是連接時生成的文件,.pdb保存調試信息用的。我目前電腦里沒有更多工程 可供參考了…印象中有時候還會有.obj文件,那些就是編譯器編譯代碼生成的“目標文件”,然后連接器在把目標文件和庫連接在一起。如果用過VC6.0, 還會記得在“運行”按鈕左側有兩個按鈕,那倆一個是編譯、一個是連接。在VS里就二合一了,而且默認設置好像會自動刪除掉.obj文件。
精簡一些總是好的,如果只打包了必要的文件,整個壓縮包的大小會以K計,而不是以若干M來計。好比筆記本的屏幕,臟的時候也能用,干凈的時候還是能用,但我總是願意把屏幕擦得干凈一點,而不是留下許多奇奇怪怪的污漬。
如 果大家去看EasyX官網的示例代碼,會發現有一個游戲名叫“大豐收”,那個程序的打包方式基本是此文所倡導內容的反例。以我個人逗比的三觀來看,那個程 序的代碼質量和風格也是個大大的反例。至於我為什么揪出了這個程序,大家看看便知,你也會知道我為什么想要給這個網站投稿。
poi。