VS使用技巧

1、当解决方案中存在两个及以上项目时,其中有一个需要设置为启动项目(右键->设为启动项目),启动项目标题文字会变成粗体。


2、包含目录、库目录、链接器的区别及相关问题:

  • VC++目录:

    • 包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录
    • 库目录:寻找.lib文件的搜索目录
  • C/C++:

    • 常规->附加包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录(每一项对应一个文件夹XXXX,文件夹中包含了编译时所需的头文件,使用时直接#include即可)
  • 链接器:

    • 常规->附加库目录:寻找.lib文件的搜索目录
    • 输入->附加依赖项:lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码)
  • 常见问题:

    • 包含目录和附加包含目录(库目录和附加库目录)的区别:
      • 包含目录:修改了系统的include宏的值,是全局的;
      • 附加包含目录:用于当前项目,对其他项目没有影响。
      • 库目录和附加库目录的区别同上
    • 当需要对某工程添加这些目录时,通常情况下,都是在附加包含目录和附加库目录中添加的。
    • 要使用一个库,除了要include其头文件以外(附加包含目录),还要在链接过程中把lib加进去(附加库目录、附加依赖项)。
    • 当需要向项目中添加.dll动态链接库时,直接将需要添加的.dll文件拖拽到项目生成的.exe所在的文件夹下即可(项目->属性->配置属性->常规->输出目录,可以看到.exe生成在哪个目录下)。
    • 在添加上述几个目录的路径的时候,可以看到$(xxxx),这就是宏了,可以点开右下角的宏查看这些分别代表什么字符串。

3、出现0xc000007b——应用程序无法正常启动:

  • 根本原因是缺乏所需要的DLL,提供了错误版本的dll相当于没有DLL,提示完全一样
  • 网上的解决办法:
    • SysWOW64目录下的dll并非确保是64位的,也有可能是32位的。那么到哪里去找真正的64位的dll呢?在这里 vs安装目录\VC\redist\x64,这里有正统的dll
  • 我自己的解决办法:
    • 在C:\Windows\SysWOW64目录下找到mfc100(d).dll、msvcp100(d).dll、msvcr100(d).dll,替换放入项目的Release(Debug)文件夹下即可。

4、win10上vs2010写的项目如何使其在xp系统上运行:

  • 要领:要把工程发布为静态库才能具有“跨平台”的属性。
    • 【配置属性】-【常规】-【平台工具集】,选择“Visual Studio 2012 (v110 XP)”(不打补丁没有该选项)。
    • 【配置属性】-【常规】-【使用MFC】,选择“Use MFC in a Static Library”(非MFC程序可无视)。
    • 【配置属性】-【C/C++】-【代码生成】-【基本运行时库】,根据你的当前工程属性Debug还是Release来选择“Multi-threaded Debug (/MTd)”或者“Multi-threaded (/MT)”。
    • 将你的工程中依赖的所有外部库,都按照步骤1~3重新编译。

5、win10上vs2010已经写好的项目如何在xp系统上运行:

  • 问题描述:用vs2010编译好的程序,里面有opencv配置、mfc调用等,最后生成了一个exe文件,在Release文件夹下放了很多dll,win10下面能运行,但在xp和win7下不能运行,一直提示缺乏msvcp140.dll等动态链接文件,但把这些dll文件放入release文件夹或系统路径C:\Windows\System32下都不管用。。。
  • 解决办法:
    • 既然提示msvcp140.dll,那么则说明系统欠缺vs2015组件,于是可以下载并安装微软VC++2015版运行库(英文全称:Microsoft Visual C++ 2015 Redistributable Package),非常方便快捷;
    • 安装完之后,还是运行不了。按照提示又在Release文件夹下加入了msvcp100d.dll、msvcr100d.dll、mfc100d.dll三个文件夹,便大功告成。至于为什么要加入这三个debug模式的dll文件还是不知其所以然。。。

6、新建的文档无缘无故打不开源文件、包括文件:

  • 在检查完属性->C/C++->附加包含目录无任何错误后,运行程序依旧会出现题中的问题,折腾了我半年之久的疑惑终于被我解决了:新建项目时,不能选择默认路径C:\Users\workg\Documents\Visual Studio 2017\Projects\,需要重新给个路径,问题突然就解决了。。。也是非常神奇!