接着上一篇文章带你玩转Visual Studio——开篇介绍继续讲这个主题,现在我们从创建一个新的工程开始。

一步一步创建项目

  1. 依次选择菜单:File\New\Project,打开New Project对话框。
  2. <1>.选择项目类型:Win32 Console Application;<2>.填写工程名(Project Name):TestProject(可以给它取一个任意你想要的名字);<3>.选择该工程存放的路径:D:\CppWorkspace。


    图 1:New Project

你可能会想问:列表里这么多工程类型,分别代表什么含义啊? 这个问题后面再讨论,你先记住这张图。

  1. 点击Ok,然后点击Next,会出现这一步


    图 2:Application Settings

  2. 我们就采用默认的设置,点击Finish,工程创建完成。
    (这是工程相关的设置,同样先不用管它,先记住这张图,后面再讨论)。


工程结构与目录结构

工程结构


图 3:工程结构

创建完成之后,我们会在左侧看到这样一个工程结构。分别说明如下:
External Dependencies:
工程的外部依赖文件,这个目录是VS自动生成的,你最好别动它。

Header Files:
头文件,也就是.h(.hpp)后缀的头文件。

Source Files:
源文件,也就.cpp(或.c,针对C语言)后缀的文件。

Resource Files:
资源文件,如果你创建的是MFC的工程,*.rc文件就会在这里。

工程结构的作用:

  1. 方便管理,将不同类型或不同用途的文件配制在不同的结构下,方便文件的浏览、查找和代码的管理。
  2. 工程结构的目录与真实文件的目录不一定相同。
  3. 你可以根据文件的不同用途或不同含义,对工程结构重新配置。
    比如我觉得Source Files和Header Files这名太长,你可以选中它按F2,分别把它改重命名成Source和Header。关于工程结构的自定义配置,后续章节的文章还会再提到。

目录结构


图 4:目录结构

正如上面提到的“工程结构的目录与真实文件的目录不一定相同”,我们在文件管理器中打开TestProject所在的目录,可以看到 *.h 和 *.cpp文件都在同一个目录下,在我的目录里也就是位于D:\CppWorkspace\TestProject\TestProject。


写一个HelloWorld程序

所有计算机语言的学习都从HelloWorld开始,Ok,那我们也从HelloWorld开始写一个程序吧!在TestProject.cpp文件中写一个HelloWorld程序如下:

#include "stdafx.h"#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[])
{cout << "Hello World" << endl;return 0;
}

编译:
右键工程名TestProject选择Build,或者点击菜单Build\Build Project。

运行:
内容太简单,直接运行吧,按Ctrl+F5或点击菜单Debug\Start Without Debugging。


图 5:程序运行结果


工程目录下各文件的含义

一般大部分的文章可能介绍到上面就算结束了,但我这还没有。创建工程产生的各个文件都你知道是什么用的吗?

如果你是一个初学者,你可能会不知道(老手请跳过本文)。Ok,我就带你逐一了解吧。

解决方案与工程

在这之前先了解一个概念:解决方案与工程。
解决方案(Solution):一个大型项目的整体的工作环境;
工程 (Project):一个解决方案下的一个子工程;

在VS中,一个Solution可以有一个或多个Project。在我们创建一个工程时,如果没有指定Solution,VS会帮我们创建一个与工程名相同的Solution,这时一个Solution里只有一个Project。所有在我们的TestProject的文件目录结构中TestProject文件夹下还有一个TestProject文件夹(如图4),第一个就是整个Solution的目录,第二个才是Project的目录。

解决方案相关的文件:

TestProject.sln:
整个解决方案(Solution)的配制文件,组织多个工程和相关的元素到一个解决方案中。用鼠标双击它就能用VS打开整个工程项目。

TestProject.sdf:
浏览相关的数据库文件,它支持浏览和导航的特性。如跳转到方法、变量的声明,查找所有对象的所有被引用的地方,类视图等等。

TestProject.suo:
(solution user opertion) 解决方案用户选项,记录所有将与解决方案建立关联的选项, 以便在每次打开时,它都包含您所做的自定义设置.

TestProject.opensdf:
打开解决方案(Solution)时的临时文件,这个文件只有你的解决方案在VS打开的状态才会有,工程一关闭文件就被删除了。

工程相关的文件

TestProject.vcxproj:
记录工程(Project)相关的属性配制。

TestProject.vcxproj.filters:
文件过虑器,上图3“工程结构”中各个文件的组织和编排都是定义在这个文件中的。如果由于某种特殊的原因(如系统或VS突然崩溃)导致你打开工程时文件的组织结构是乱的,100%就是这个文件的原因。

TestProject.vcxproj.user:
用户相关的一些配制。

上面这些文件中有几个比较重要的一定不能删的文件是:
TestProject.sln、TestProject.vcxproj、TestProject.vcxproj.filters

不要问我是怎样知道这些文件的作用的,请看官方文档:
VS2010定义:https://msdn.microsoft.com/en-us/library/3awe4781.aspx.
VS2015定义:https://msdn.microsoft.com/en-us/library/vstudio/hx0cxhaw(v=vs.110).aspx

当然有一些说明是需要经过项目的实践才能理解的。



上一篇回顾:
带你玩转Visual Studio——开篇介绍

下一篇要讲述的内容:
带你玩转Visual Studio——带你了解VC++各种类型的工程

【转】带你玩转Visual Studio——02.带你新建一个工程相关推荐

  1. 【转】带你玩转Visual Studio——04.带你高效开发

    上一篇文章带你玩转Visual Studio--带你了解VC++各种类型的工程一文中讲了各种类型VC++工程的主要功能和用途.现在将带你一起快速开发c++程序. 有过Java开发经验的人都知道Java ...

  2. 【转】带你玩转Visual Studio——03.带你了解VC++各种类型的工程

    上一篇文章带你玩转Visual Studio--带你新建一个工程一文中提到新建一个工程时会有很多的工程类型(图1),现在将简单介绍各种类型工程的含义和主要用途.由于这里包含的工程类型太多,有很多本人也 ...

  3. 【转】带你玩转Visual Studio——01.开篇介绍

    开篇之前,先唠叨几句 本人从事C++开发工作一年半,总想就C++开发方面写点东西.写什么呢?想了一下还是写点跟开发密切相关的吧,要说跟开发最密切相关的那莫过于就是开发工具了,也就是常常说的集成开发环境 ...

  4. 带你玩转Visual Studio(八)——带你跳出坑爹的Runtime Library坑

    在Windows下进行C++的开发,不可避免的要与Windows的底层库进行交互,然而VS下的一项设置MT.MTd.MD和MDd却经常让人搞迷糊,相信不少人都被他坑过,特别是你工程使用了很多第三库的时 ...

  5. 带你玩转Visual Studio——性能分析与优化

    上一篇文章带你玩转Visual Studio--VC++的多线程开发讲了VC++中多线程的主要用法.多线程是提升性能和解决并发问题的有效途经.在商用程序的开发中,性能是一个重要的指标,程序的性能优化也 ...

  6. 带你玩转Visual Studio——开篇介绍

    开篇之前,先唠叨几句 本人从事C++开发工作一年半,总想就C++开发方面写点东西.写什么呢?想了一下还是写点跟开发密切相关的吧,要说跟开发最密切相关的那莫过于就是开发工具了,也就是常常说的集成开发环境 ...

  7. 带你玩转Visual Studio——单元测试

    上一篇文章带你玩转Visual Studio--性能分析与优化讲了找出性能瓶颈和性能优化相关的技能,在大型企业项目的开发中,性能是固然重要的,而另一个过程--测试也是必不可少的.测试有很多的各类:功能 ...

  8. [转载]带你玩转Visual Studio——带你高效开发

    原文地址:http://blog.csdn.net/luoweifu/article/details/48852119#t15 VassistX的简单介绍与下载安装 简单介绍 VassistX的全称是 ...

  9. 一文带你弄懂Visual Studio:运行时库及MT/MTD、MD/MDD

    一文带你弄懂Visual Studio:运行时库及MT/MTD.MD/MDD 引子 什么是Runtime Library? Runtime Library和运行库 MT MTD MD MDD的关系 静 ...

最新文章

  1. Qt窗口部件与布局之二:布局管理
  2. typedef enum的用法(枚举)
  3. VS2005--设置Release模式下调试
  4. webgl 基础渲染demo_WebGL + ThreeJS 实现实时水下焦散 Part 1
  5. java数据库的量级_程序员学Python还是Java?分析了8张图后得出这个结论
  6. 虚拟化平台cloudstack(4)——几个异常
  7. 使用Node.js 搭建静态服务器
  8. linux查看挂载内存卡,Ubuntu Linux 挂载移动硬盘、U盘、SD卡(对于新手)
  9. Android Toast的立即取消与显示
  10. 用雅虎邮箱再次注册微信个人订阅号
  11. ChAMP包处理甲基化芯片数据
  12. 虚拟服务器lan网段地址,lan侧服务器ip地址
  13. github - You have exceeded a secondary rate limit.
  14. 微信小程序中使用iconfont图标
  15. php验证码大全(实例分享),php文件上传代码大全(实例分...-php验证码大全(实例分享)-php打印倒三角的实例代码_169IT.COM...
  16. 学习bootstra前端框架
  17. pjblog支持QQ、新浪微博一键登录
  18. 基于线上请求的性能测试系统CPC
  19. 女网姑娘……结婚好哇!
  20. 精选微软等公司数据结构+算法经典面试100题[1-80题]

热门文章

  1. AFNetworking 3.0源码阅读 - AFURLResponseSerialization
  2. 如何提高英文的科研写作能力
  3. BZOJ4122 : [Baltic2015]File paths
  4. URLEncoder编码
  5. C#控制台程序,发送邮件,可带附件
  6. codeUp 2143: 迷瘴 浮点计算|贪心
  7. android mysql sqlite_Android SQLite数据库基本操作方法
  8. excel android 公式,两个超实用的Excel万能公式,瞬间提升你10倍工作效率!
  9. 计算机怎样辅助英语听力教学方法有哪些,计算机辅助教学在英语听力中的运用.doc...
  10. ios 部分string颜色_iOS-代码混淆加固方案