VS编译器的一些东东

VS编译器的一些东东

VS调用堆栈

1、崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

笔者寄语:自己以前用VS的调试功能的时候从来没有注意过调用堆栈的使用,其实通过调用堆栈可以快速找到使程序发生崩溃的地方,然后将鼠标移动到变量的上方可以看到代码运行到崩溃的时候相应的变量的值,从而判断出产生错误的原因。

预编译头文件的本质

1、预编译头文件的本质,就是每次编译不用重复编译那些未改动的大量的头文件,而直接使用以前编译产生的保存在pch文件中的中间结果,以求加快编译速度。

命令行参数解析

当我们新建控制台工程的时候,若没有勾选上空项目选项的时候编译器会自动帮我们生成带有参数的main函数,如int main(int argcchar** argvint main(int argcchar*grg[]),当我们不需要用到里面的形参的时候其实是可以不用管它的,也可以通过配置项目属性里的命令行参数来使用。

1、在系统命令提示符中,系统根据字符串的个数确定argc,并使用agrv[]指针数组指向所有字符串..这两个就是用于接受参数和记录参数信息的。注意:系统认为agrc.exe字符串是第一个命令。

2、cmd窗口运行代码时即使在VS编译器里设置了命令行参数,但是此时程序是不会读取那里的参数的。

有关引入动态连接库的总结:

1VS中添加宏的方法是:右键选择项目属性->c/c++ ->预处理器中添加

2VS中添加lib的方法是:右键选择项目属性->链接器->输入中添加

3VS版本更换的方法是:右键选择项目属性->常规->平台工具集中更改

4VS中包含头文件的方法是:右键选择项目属性->c/c++ ->常规->附加包含目录中添加

5、注意包含库目录的方法

6、注意在那些需添加静态库的工程时,若采用相对路径,则拷贝后的文件夹与原文件夹工程路径不完全相同的话也是不能用的,记住包含了库目录,还要为运行的项目勾上依赖项。

7.lib是编译时需要的,.dll是运行时需要的,注意.dll文件是在右键选择项目属性->调试->工作目录中添加的(注意:也可以直接把dll文件拷贝到debugrelese文件夹。)

8、动态库的.lib文件只是一些接口函数的声明,.dll文件包括具体的实现方法。而静态库的.lib包含实现与接口文件。

10VS编译器的release版本调试运行时的提示信息有时是不正确的,最好用debug版本调试!!!!!!,但是Cout是可信的。

VS工作目录输出目录

 

1C++项目,解决方案总文件夹下就只包含解决方案配置文件sln和一个项目总文件夹和一个Debug文件夹以及一个Release文件夹(共四个东东,其中DebugRelease文件夹中存放最终生成的结果exedll,要注意如果不使用Release生成,则不存在Release文件夹),而项目总文件夹下包含C++源文件头文件、项目配置文件和一个Debug文件夹以及一个Release文件夹(一定要注意,此处的DebugRelease文件夹仅仅存放中间编译结果obj,不存放exedll之类的东西。如果不使用Release编译,则没有对应的Release文件夹)。

vs中默认的vc++工程的工作目录项目的值是空的,代表默认是vs工程所在目录即.vcproj文件所在目录,如WorkStation.vcxproj 所在的目录,就是该工程的当前默认工作目录

工作目录:指定程序运行时的目录

环境:指定程序运行时的环境变量

2、当在有.exe执行文件的的文件夹下直接启动执行文件时,此时的工作目录就在该文件夹下。当在VS里启动运行且没有配置工作目录的时候此时默认工作目录在WorkStation.vcxproj 所在的目录肖师兄:一个工程选择直接运行的话,此处默认的工作目录和程序运行所执行的.exe文件是一个目录。当选择调试运行的时候程序此时默认的工作目录在WorkStation.vcxproj 所在的目录(当有配置工作目录的时候,就在相应的配置的工作目录下)。

注意:代码上所有的写相对路径的地方都是相对与当前的工作目录而言的。



附:要想了解更多可参考笔者的另外两篇博文,下次给出链接。

由于笔者水平有限,若博文中存在错误或不周之处,还望各位大牛多多指教,有新的经验的时候也会及时更新本博文奋斗奋斗



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值