Visual Studio的使用
1. 关于VS的使用
1.1 创建工程编写代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("hello world");
system("pause");
return 0;
}

选择空项目



项目是空的,我们需要添加一个文件,用来写代码:

添加一个文件,用于写代码


1.2 编译程序
1.2.1 设置编译选项
程序有两个版本,debug(调试版本) 和 release(发行版本),
- 学习的过程中,通常是 debug,方便调试
- 发行的时候,通常是 release,方便减小程序的体积,进行代码优化
程序的运行平台,x86,x64
- x86 的32 位操作系统下运行的程序,64位系统兼容32位程序
- x64 是64 位操作系统下运行的程序,32位系统不能运行这种程序
- 在学习的过程中,如果不特殊指定64位,那么通常就是说的 x86 的程序
1.2.2 右键----》生成 仅编译

1.2.3 编译+调试运行
快捷键:F5

1.2.4 编译+直接运行
快捷键:ctrl+F5
调试运行 与直接运行的区别:
调试运行的话,VS对于程序是有控制能力的
直接运行,VS对于程序是没有任何控制能力的
1.2.5 编译失败
当写的代码有问题的时候,编译就有可能失败,VS会提示我们哪里有错误

1.3 VS的工程管理结构
一个解决方案,下面可以有多个项目,每一个项目中,可以有多个 源文件。
- 项目之间是相互独立的
- 同一个项目中的 源文件是相互影响的
解决方案:
工程1(项目1)
-
源代码文件1
-
源代码文件2
-
源代码文件3
工程2(项目2)
-
源代码文件1
-
源代码文件2
-
源代码文件3
工程3(项目3)
-
源代码文件1
-
源代码文件2
-
源代码文件3
工程4(项目4)
-
源代码文件1
-
源代码文件2
-
源代码文件3
每一个工程,都是一个独立的程序,相互之间可以没有任何关系。
每一个工程可以有很多的源文件。属于同一个工程下的这些源文件是关系的。他们相互配合组成一个项目,组成一个程序。编译的时候,同一个工程的内的所有源文件是一起编译的。
1.4 添加项目


添加完工程之后,如果想要让新的工程是默认工程,需要设置一下

1.5 寻找关闭的窗口

2. C/C++程序工程管理的问题
2.1 基本的使用
一个正常的工程,应该是由多个文件所组成的。
MyMath.h
#pragma once
int GetMax(int n1, int n2);
extern int g_nNum;
MyMath.cpp
int g_nNum = 100;
//实现一个函数,代替下面的代码
//获得两个整型的较大值
int GetMax(int n1, int n2)
{
if (n1 > n2)
{
return n1;
}
else
{
return n2;
}
}
MyString.h
#pragma once
int GetLenth(char Name[20]);
MyString.cpp
int GetLenth(char Name[20])
{
int nLenth = 0;
while (Name[nLenth] != 0)
{
nLenth++;
}
return nLenth;
}
在使用这些函数的地方,去包含相应的头文件
#include <stdio.h>
#include <stdlib.h>
//在这里写上声明,就可以使用了。
//但是通常我们都不会自己写声明,有两点原因:
//1. 写声明过于麻烦
//2. 这个文件提供哪些函数给别人使用,编写这些函数的人最为清楚
// 所以谁实现的这些函数,谁就应该提供声明。
#include "MyMath.h"
#include "MyString.h"
int main()
{
int nScore1 = 10;
int nScore2 = 20;
char buf[20] = { "xiaoming" };
int nMax = GetMax(nScore1, nScore2);
int nLenth = GetLenth(buf);
printf("全局变量的值为%d", g_nNum);
return 0;
}
2.2 需要注意的问题
.h文件中 只能写声明,不能写定义,否则容易出问题- 如果发现了这样的错误

就是声明和定义 不匹配。或者 有声明,但是没写定义。
- 如果一个文件中的函数或者全局变量,不想给其他文件用,可以声明为 static
//在函数的前面加上 static 这个函数就只能在
//本文件中使用了。
static int Fun(int n1)
{
}
-
如果学习内核的话,需要SDK与WDK版本一致。当不一致的时候,即使预处理正确,库定义的东西也标红。

图片来源:火哥内核
VS旧版本安装:
VS官网:(需要登录微软账户):

浙公网安备 33010602011771号