VS工程里的文件都是啥?如何打包? 2015-03-04
打完补充:以下内容全部是我一家之言,只是愿意分享,内容如有不妥还请见谅。
======================================================
刚才接收了一份代码,庞大的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。
VS工程里的文件都是啥?如何打包? 2015-03-04的更多相关文章
- C盘里的桌面文件移到E盘里了,然后E盘里的文件都显示到桌面上了,怎么将桌面文件还原回C盘
1 . 直接按Windows键+R,打开"运行"对话框,在输入框中输入"regedit"命令,会打开注册表编辑窗口: 2.打开注册表文件将HKEY_CURREN ...
- android 工程里缺少 R.java 文件原因和解决方法
作为新手,学习android 的时候难免要导入一些示例,目的为了更加了解android各种API用法,顺便也可以学习下别人代码的写法. 可是导入android源码后,基本都有错误,R.java也不会自 ...
- eclipse的工程里的*.properties文件默认以unicode的编码形式显示
今天发现导入eclipse的工程里的*.properties文件无法显示中文,是unicode的编码形式显示的. 原因是Eclipse的.properties文件的默认编码为iso-8859-1. 选 ...
- VC工程里,如何编译汇编语言的文件
最近老是有朋友问,VC工程里,如何编译汇编语言的文件,接下来就说一下步骤: 1.将汇编语言文件,加入到工程里: 2.在Solution Explorer窗口中右键单击Visual C++项目,选择Bu ...
- 清理iOS工程里无用的图片,可瘦身ipa
工程在经过多人后,往往会出现较多的垃圾,导致打包出来的ipa文件偏大,有时候我们会通过清理代码来给程序瘦身,而瘦身ipa效果明显的,主要通过清理程序里的无用图片. 推荐一个清理图片的应用 https: ...
- 在 C++Builder 工程里调用 DLL 函数
调用 Visual C++ DLL 给 C++Builder 程序员提出了一些独特的挑战.在我们试图解决 Visual C++ 生成的 DLL 之前,回顾一下如何调用一个 C++Builder 创建的 ...
- AltiumDesigner学习笔记(一)——创建工程与原理图文件
一.创建工程与原理图文件 1.通过菜单创建PCB工程 (1)File - New - Project - PCB Project,即可在当前工作区创建新的PCB工程 (2)新建工程并不直接在硬盘中创建 ...
- 论XCODE工程里使用的宏定义.
在XCODE开发过程中,经常会遇到引用头文件,引用库路径的问题,如果不是直接的源码引入,则需要在工程中增加设置.虽然现在有了Pod这类集合管理工具,但有时为了一个很小的lib引入Pod这尊大神还是有点 ...
- 在 C++Builder 工程里使用 Visual C++ DLL(3个工具) good
译者序: 第一次读这篇文章是在 2001 年 10 月,帮我解决了一点小问题.本来不好意思翻译,因为英语水平实在太差.最近发现不少网友在问在 C++Builder 的工程里调用 Visual C++ ...
随机推荐
- Xcode磁盘空间大清理
我的设备是Macbook Air 13' Mid 2011,128G SSD.最近开始有些存储压力了,用Clean My Mac清理一部分旧文件后,决定对Xcode动手. 移除对旧设备的支持 影响:可 ...
- VMware Workstation 11, 客户机Ubuntu14.04.1 LTS 64bit,宿主机Windows 8.1 64bit,剪贴板共享(copy and paste)失效问题
Ubuntu14.04是从12.04升级上来的,因为GUI性能的原因相继装了Xubunbu和Lubuntu的包(Lubuntu的桌面果然轻量级,但是请神容易送神难,卸载Xubuntu很麻烦,就先放下了 ...
- Android学习起步 - AutoCompleteTextView及MultiAutoCompleteTextView控件使用
大家在用百度搜索时,输入几个词就出现下拉框可选,以下两个控件就具有这个功能 AutoCompleteTextView:只能匹配输入的开始,只有一次匹配 MultiAutoCompleteTextVie ...
- 初识Lucene.net
最近想提高下自己的能力,也是由于自己的项目中需要用到Lucene,所以开始接触这门富有挑战又充满新奇的技术.. 刚刚开始,只是写了个小小的demo,用了用lucene,确实很好 创建索引 Data ...
- 45个android实例源码
分享45个android实例源码,很好很强大http://www.apkbus.com/android-20978-1-1.html andriod闹钟源代码http://www.apkbus.com ...
- gdb 调试
一.gdb 调试-源代码关联 在调试程序的过程中,可以自由地查看相关的源代码(如果有源代码的话)是一项最基本的特性.gdb 当然也提供了这项特性,虽然不如IDE直观,但在一定程度上要比IDE更加灵活和 ...
- 在网页中嵌入地图API
1.登录百度地图api,地址:http://api.map.baidu.com/lbsapi/creatmap/index.html 2.设置你的地理位置 3.简单设置下地图功能.地图的宽度和高度根据 ...
- [转载]Python & Selenium -- 页面加载时间过长&启动指定FF
原文链接:https://my.oschina.net/u/2344787/blog/400507?p={{page}} 1. selenium webdriver在get方法会一直等待页面加载完毕才 ...
- 自动检测浏览器是手机还是pc
function CheckBrower() { if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { //判断iPhone|iPad| ...
- 初学Python之异步多线程:sockserver
异步多线程:服务端 import socketserver class MyServer(socketserver.BaseRequestHandler): def setup(self): pass ...