打完补充:以下内容全部是我一家之言,只是愿意分享,内容如有不妥还请见谅。

======================================================

刚才接收了一份代码,庞大的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的更多相关文章

  1. C盘里的桌面文件移到E盘里了,然后E盘里的文件都显示到桌面上了,怎么将桌面文件还原回C盘

    1 . 直接按Windows键+R,打开"运行"对话框,在输入框中输入"regedit"命令,会打开注册表编辑窗口: 2.打开注册表文件将HKEY_CURREN ...

  2. android 工程里缺少 R.java 文件原因和解决方法

    作为新手,学习android 的时候难免要导入一些示例,目的为了更加了解android各种API用法,顺便也可以学习下别人代码的写法. 可是导入android源码后,基本都有错误,R.java也不会自 ...

  3. eclipse的工程里的*.properties文件默认以unicode的编码形式显示

    今天发现导入eclipse的工程里的*.properties文件无法显示中文,是unicode的编码形式显示的. 原因是Eclipse的.properties文件的默认编码为iso-8859-1. 选 ...

  4. VC工程里,如何编译汇编语言的文件

    最近老是有朋友问,VC工程里,如何编译汇编语言的文件,接下来就说一下步骤: 1.将汇编语言文件,加入到工程里: 2.在Solution Explorer窗口中右键单击Visual C++项目,选择Bu ...

  5. 清理iOS工程里无用的图片,可瘦身ipa

    工程在经过多人后,往往会出现较多的垃圾,导致打包出来的ipa文件偏大,有时候我们会通过清理代码来给程序瘦身,而瘦身ipa效果明显的,主要通过清理程序里的无用图片. 推荐一个清理图片的应用 https: ...

  6. 在 C++Builder 工程里调用 DLL 函数

    调用 Visual C++ DLL 给 C++Builder 程序员提出了一些独特的挑战.在我们试图解决 Visual C++ 生成的 DLL 之前,回顾一下如何调用一个 C++Builder 创建的 ...

  7. AltiumDesigner学习笔记(一)——创建工程与原理图文件

    一.创建工程与原理图文件 1.通过菜单创建PCB工程 (1)File - New - Project - PCB Project,即可在当前工作区创建新的PCB工程 (2)新建工程并不直接在硬盘中创建 ...

  8. 论XCODE工程里使用的宏定义.

    在XCODE开发过程中,经常会遇到引用头文件,引用库路径的问题,如果不是直接的源码引入,则需要在工程中增加设置.虽然现在有了Pod这类集合管理工具,但有时为了一个很小的lib引入Pod这尊大神还是有点 ...

  9. 在 C++Builder 工程里使用 Visual C++ DLL(3个工具) good

    译者序: 第一次读这篇文章是在 2001 年 10 月,帮我解决了一点小问题.本来不好意思翻译,因为英语水平实在太差.最近发现不少网友在问在 C++Builder 的工程里调用 Visual C++  ...

随机推荐

  1. 培训第五天---JS

    &&与||的基础<script type="text/javascript"> var c = 4||3; alert(c);</script&g ...

  2. centOS安装网卡驱动

    作为一个小白来说,安装驱动之类的真是无心下手的感觉,在学习了http://www.centoscn.com/image-text/config/2013/0816/1269.html这篇帖子的步骤之后 ...

  3. Eclipse 复制代码保留原格式

    当代码中有折叠代码时,无法复制格式,觉得方法有2: 1.设置取消折叠 如图所示,取消勾选"Enable folding"即可,该方法一劳永逸,缺点是以后编码显示不够简洁. 2.点开 ...

  4. MySql绿色版下载,安装,配置详解

    下载完成之后解压,楼主用的版本是:mysql-5.7.15-winx64 解压完在根目录下建立一个data文件夹和my-default.ini my-default.ini里面的内容如下:(红色内容根 ...

  5. Android自学笔记:Git下载源代码

    Info:做J2ME几年了,现在基本没有公司用了,是时候向Android领域进军了. 自学中,难免会有疏漏,有问题请及时提出,共同学习共同进步. 2014-10-13:初版 2014-10-14:添加 ...

  6. Thinkphp源码分析系列(七)–控制器基类

    在mvc模式中,c代表的就是控制器,是是应用程序中处理用户交互的部分.通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据.控制器是沟通视图和模型的桥梁,他接受用户请求,并调用模型层去处理用户 ...

  7. 类的高级:访问修饰符、封装、静态类成员static、内部类;

    访问修饰符: 公开访问(public):对所有子类,非子类访问: 受保护的(protected):只有同包子类.非子类.不同包子类可访问,不同包非子类不可访问: 私有的(private):只有本类可访 ...

  8. Caused by: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode

    进行 spring mvc jpa整合时.Junit方法测试时. 异常: org.springframework.beans.factory.BeanCreationException: Error ...

  9. Vue2父子组件通信探究

    父组件: <template> <div id="secondcomponent"> <input type="" v-model ...

  10. 1045 access denied for user 'root'@'localhost' using password yes的解决方法

    今天把一个项目和项目的数据库都下载到了本地,安装好项目和在本地配置好数据库后,在浏览器登陆项目的后台却出现了以下错误:   后来上百度搜索了好几个答案,都是讲述修改数据库密码的步骤,但是就是没有说明为 ...