【问题标题】:Unable to include header file in C++ console application project无法在 C++ 控制台应用程序项目中包含头文件
【发布时间】:2012-05-03 19:37:51
【问题描述】:

我一直在尝试链接一个 .lib 文件,并且还在我的 C++ 控制台应用程序项目中包含一个头文件。我从我的其他项目之一复制了 C++ 头文件,并将其粘贴到控制台应用程序项目中的 Header Files 文件夹下。这是要查看的屏幕截图:http://i.imgur.com/JFFIn.png

但是,当我尝试在代码中将标头包含为 #include... 时,我没有得到带有头文件名称的智能感知。 (我只看到 targetver.h、stdafx.h 和 Debug 文件夹)
我试图在我的 C++ 控制台应用程序项目属性中将 Add additional include directories 指向 Project 文件夹本身,但这似乎没有帮助,文件仍然没有显示。

如果我将头文件的名称写为#include "DllTest.h",则会收到错误消息:
Cannot open include file: 'DLLTest.h': No such file or directory c:\users\ht\documents\visual studio 2010\projects\dlltest\dlltestconsole\dlltestconsole.cpp

头文件是如何包含在此处的,以便它开始出现的?如果我add a new item > Header File,把它命名为DLLTest.h,把头文件内容复制粘贴到这里,就可以正常显示了。复制到Header Files文件夹的头文件将如何显示在代码中?

【问题讨论】:

  • “DllTest.h”是否在您的项目目录中? (例如靠近 dlltestconsole.cpp?)
  • @phantasmagoria :在项目下的Header Files 中。这是要查看的屏幕截图:i.imgur.com/JFFIn.png
  • 是的,但是磁盘上的文件在哪里? “头文件”并不是一个真正的文件夹,它是一个 filter,仅用于 UI 中的组织。可以将磁盘上任何位置的文件添加到该过滤器中。编译器对过滤器一无所知,它只知道磁盘上的位置。您需要确保它所在的文件夹存在于“其他包含目录”中。
  • @JamesMcNellis:非常感谢!事实上,这可以作为我的答案。但是,我还想问我如何将这些文件复制粘贴到我的项目中,以便它们进入项目目录本身(我可以在 C# 项目中这样做)。我是否必须在项目目录中手动复制,然后添加现有项目 -> 从项目目录中选择

标签: c++ visual-c++ header-files visual-c++-2010


【解决方案1】:

在 C++ 项目中,解决方案资源管理器中看起来像文件夹的东西实际上并不是文件夹,它们是 过滤器。它们是纯 UI 实体,可用于在 IDE 中组织项目项。但是,它们不以任何方式反映磁盘上项目的结构或位置。您可以将磁盘上任何位置的文件添加到解决方案中的任何过滤器。

编译器对这些过滤器一无所知;它只知道磁盘上存在的文件。

在您的情况下,文件不在您的项目文件夹中。您要么需要:

  • 将文件复制到项目文件夹中,然后从那里将它们添加到项目中(右键单击解决方案,然后添加现有项),或者

  • 从它们所在的位置添加文件,然后将它们的位置添加到项目属性中的“其他包含目录”属性中。

我不知道有什么方法可以在您将文件复制并粘贴到项目中时让 IDE 自动将文件移动到项目目录中。 C++项目系统与C#和VB使用的项目系统有着本质的区别。

【讨论】:

  • 我喜欢“C++ 项目与 C# 根本不同”的说明。
猜你喜欢
  • 2012-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
相关资源
最近更新 更多