属性页

$(OutDir):输出文件目录的路径,相对于项目目录。这解析为“输出目录”属性的值。
$(ProjectName):项目的基本名称。
$(SolutionDir):解决方案的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。


$(Configuration):当前项目配置的名称(例如“Debug”)。
$(Platform):当前项目平台的名称(例如“x32”)。
$(ProjectDir):项目的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(ProjectPath):项目的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

输出目录(即生成.exe文件的目录),中间目录(即中间文件的目录)。

修改了输出文件的目录,那我们也必须修改我们的调试目录,不然就无法调试了。虽然编译通过了,但并没像你想的那样出现控制台的“黑窗口”,原因就是我们没有修改调试目录:

将调试目录修改为$(OutDir)就可以了,VS2019默认配置-输出文件目录和调试目录就不一样。

命令参数一项也是比较重要的,如果你开发的是一个带有命令行参数的项目,你调试的时候就可以在这里设置传给程序的命令行参数来进行调试了。你是否还记得你运行一个带有命令行参数的程序时是出现一个黑框框然后马上就消失了,什么也不会做,除非你是将该程序拖到命令提示符下运行。

附加包含目录

设置其他库的.h头文件的目录,一般放在库的include文件夹下。

附加库目录

设置其他库的lib以及.dll链接库的目录,一般放在库的lib下。

双击运行程序,除非你设置了所依赖的dll的环境变量,否则程序仍然无法运行,因为程序无法找到dll模块。你可以手动把这些.dll拷贝到.exe文件所在的文件夹,但现在有一个更好的办法,如下图:

我们可以在上面的命令行中填写我们在重新生成完程序后,执行的命令。我们可以在这里使用copy命令,来将程序需要的.dll文件自动拷贝到.exe文件所在的目录。当然,在这里你可以做更多的事情,比如如果你的程序需要读取配置文件,你也可以把配置文件拷贝过来等。

最后,把配置由Debug改变Release再将Release下的所有这些设置重新设置成Debug相同的就可以了。

路径推荐使用编译器提供给我们的宏变量,而尽量不要使用绝对的名称,这样程序更具有移植性。

例如,如果某外部库的目录为Win32\Debug与Win32\Release或Win64\Debu与Win64\Release。这样我们使用$(Platform)$(Configuration)进行设置的时候就不需要再去管什么平台以及是Debug还是Release版本。因为编译器会自动为我们切换,当选择Debug进行编译时,编译器会自动链接到Debug版本,当选择Release进行编译时,会自动链接到Release版本。

还要注意的就是,如果有某些项目是作为导出链接库用的。需要把导出的dll, lib(即输出文件路径)设置到上面的Bin目录下。然后在需要使用导出的dll和lib文件的项目中设置

项目依赖项这前者,并设置附加库目录和附加依赖项。这样可以很方便的使用同一解决方案中其他项目导出的链接库了。

以上就是我们一般需要设置的项目属性。

代码运行之后,where’s my thing I made?

直接运行hh.exe, cmd 窗口闪了下(并不保持状态)

If we don’t add a Console.ReadLine or it doesn’t wait for a feedback

Why don’t we run that from the command prompt?

PS:“Tab” are friend in VS, and it’s our friend at the command line.

输入h,按下tab,自动补全名称,再按tab,切换以h开头的文件

Obj中放的是临时文件,bin与obj可以删掉,运行后就能重新生成

自定义:

快捷键:

C#

VS切换代码自动补全模式:可以切换代码编写时,使用tab键自动补全,还是使用空格键自动补全。

切换方式:1. 快捷键:ctrl+art+space 2. 编辑菜单->Intellisense->切换代码自动补全。

for(光标紧跟r后),双击Tab : 自动补全for循环语句 or f Tab补全,Tab

批量重命名: ctrl+r, ctrl+r

Code Snippets

Prop (property) :属性。Tab twice to insert the snippet.

Tab:在黄色中切换

Endter:光标到语句的最后

ctor:构造器

cw:console.writeline

svm:void Main方法

sim:int Main

class/enum/interface/struct

C++

给程序设置图标

准备好一张图片,在网上找个图片在线转换网站(https://www.easyicon.net/covert/)转换成.ico文件

项目右键->添加->资源->icon->导入->选中.ico->打开->重新编译.exe就有图标了

VS版本、GCC版本与C++版本的对应关系

https://zh.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B

微软的C/C++编译器有一个内置的宏_MSC_VER来表示编译器的当前版本。

各种C++标准对应的编译器支持情况,请参考官方的对照表:C++ compiler support

https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warnings-by-compiler-version?view=msvc-160

gcc版本的发布时间:http://gcc.gnu.org/releases.html

VC全名是Microsoft Visual C++是微软出的一个集成的c,c++开发环境。如上图最上面的_MSC_VER的值是1926

在Opencv中,对vs的版本采取的是VS对应的尾号版本的方式,比如VS2019version16,那vc16就代表vs2019。是下面这样的关系,

Opencv 中的vc版本与vs版本对应关系如下所示:

Visual Studio 2010 : vc10
Visual Studio 2012 : vc11
Visual Studio 2013 : vc12
Visual Studio 2015 : vc14
Visual Studio 2017 : vc15