如何在Visual Studio中包含路径?

问题描述 投票:43回答:6

Visual Studio让我发疯,我怀疑自己做错了什么。

这就是我所做的:我很久以前安装了Visual Studio(Pro '08),我安装了Windows SDK(Win 7 x64),有人通过电子邮件发送给我一个项目,但无法构建。

总是,它找不到windows.h。虽然在每个项目的项目设置中包含C:\Program Files\Microsoft SDKs\Windows\v7.0\Include很容易,但我觉得这可能不是正确的方法。有没有办法以某种方式使Visual Studio全局识别这些文件? 我也尝试在path变量中包含上面的目录,但这并没有改变任何东西。

此外,它将在同一目录中随机查找windows.h但不能找到winresrc.h。

编辑: 我的机器出了问题。不知何故,Visual Studio认为我的Windows SDK出错了。请参阅已接受的答案和修复评论。

windows visual-studio include
6个回答
22
投票

此答案仅适用于Visual Studio的古老版本 - 请参阅现代版本的最新答案。

您可以在此处设置Visual Studio全局包含路径:

Tools / Options / Projects and Solutions / VC++ Directories / Include files


60
投票

自Visual Studio 2012起,@ RichieHindle解决方案现已弃用。由于VS工作室提示现在声明:

VC ++目录现在可用作用户属性表,默认情况下添加到所有项目。

要设置包含路径,您现在必须右键单击项目并转到:

Properties/VC++ Directories/General/Include Directories

屏幕截图:enter image description here


23
投票

要在Visual Studio 2013和2015中恢复工作解决方案:

仅将include路径添加到当前项目

在Solution Explorer(VisualStudio主窗口的调色板窗口)中,打开项目的快捷菜单,选择Properties,然后在Property Pages对话框的左窗格中,展开Configuration Properties并选择VC ++ Directories。可以在那里指定其他包含或lib路径。

它是Stackunderflow和user1741137在上面的答案中所说的。它也是微软在MSDN中解释的内容。

自动为每个新项目添加包含路径

问题是,杰伊·埃尔斯顿在上面的评论中提到了什么,在我看来这是一个非常明显和亟待解决的问题,这里似乎还没有回答。

在VisualStudio中存在常规方法(参见CurlyBrace.com),根据我的经验,这些方法无法正常工作。从某种意义上说,它只运行一次,之后,它不再可扩展,并且可以移除。 Steve Wilkinson在StackOverflow的另一个密切相关的线程中的方法,编辑“程序文件”目录中的Microsoft-Factory-XML文件可能是一个冒险的黑客,因为微软不希望在那里遇到一些外国的东西。效果是无法预测的。好吧,我宁愿判断风险不大,但无论如何,使VisualStudio工作的最佳方法至少对其他人来说难以理解。

与之相比,工作正常的是编辑相应的User-XML文件:

C:\ Users \用户名\ AppData \本地\微软\的MSBuild \ V4.0 \ Microsoft.Cpp.Win32.user.props

和/或

C:\ Users \用户名\ AppData \本地\微软\的MSBuild \ V4.0 \ Microsoft.Cpp.x64.user.props

例如:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets">
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <IncludePath>C:\any-name\include;$(IncludePath)</IncludePath>
    <LibraryPath>C:\any-name\lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup />
  <ItemGroup />
</Project>

目录'C:\ any-name \ include'将被添加到当前的include-path和目录'C:\ any-name \ lib'到库路径。在这里,我们可以在扩展和删除意义上编辑它并删除所有内容,删除标记的整个内容。

它是VisualStudio本身的原因,它以CurlyBrace描述的常规方式进行。如上所述,它不是以CurlyBrace方式编辑的,而是以XML编辑的方式。

有关更深入的见解,请参阅Brian Tyler@MSDN-Blog 2009,这不是很新鲜,但始终是Microsoft链接的内容。


2
投票

要成功使用Windows SDK,您不仅需要为项目提供包含文件,还需要库文件和可执行文件(工具)。要设置所有这些目录,您应该使用WinSDK Configuration Tool


2
投票

如果您只是尝试更改项目的包含路径而不是所有解决方案,那么在Visual Studio 2008中执行此操作:在解决方案导航器中右键单击项目的名称。从弹出菜单中选择“属性”。在属性页对话框中,选择Configuration Properties-> C / C ++ / General。单击“其他包含文件”标签旁边的文本框,然后浏览相应的目录。选择确定。

令我恼火的是,原始问题的一些答案不适用于所提到的Visual Studio版本。


-4
投票

您需要确保并拥有以下内容:

#include <windows.h>

而不是这个:

#include "windows.h"

如果这不是问题,那么检查RichieHindle's response

© www.soinside.com 2019 - 2024. All rights reserved.