2012-05-03 1 views
3

Я пытался связать файл .lib, а также включить заголовочный файл в моем проекте консоли C++. Я скопировал заголовочный файл C++ из одного из моих других проектов и вставил его в папку Header Files в консольном приложении. Вот скриншот для просмотра: http://i.imgur.com/JFFIn.pngНевозможно включить заголовочный файл в проект приложения консоли C++

Однако, когда я пытаюсь включить заголовок в свой код как #include..., я не получаю intellisense с именем моего заголовочного файла. (Я вижу только targetver.h, stdafx.h и папку Debug)
Я попытался указать Add additional include directories в свойствах проекта консольного приложения C++ для самой папки 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?

+0

Является ли "DllTest.h" в вашем каталоге! (Например, возле dlltestconsole.cpp?) – phantasmagoria

+0

@phantasmagoria: Он находится в разделе «Заголовочные файлы» в рамках проекта. Вот скриншот, чтобы увидеть: http://i.imgur.com/JFFIn.png – user1240679

+2

Да, но где файл на диске? «Файлы заголовков» на самом деле не являются папкой, это _filter_, которая используется только для организации в пользовательском интерфейсе. В этот фильтр можно добавить файл из любого места на диске. Компилятор ничего не знает о фильтрах, он знает только о местах на диске. Вам нужно убедиться, что папка, в которой она находится, присутствует в «Дополнительные каталоги включения». –

ответ

3

В проектах на С ++ вещи, которые выглядят как папки в обозревателе решений, на самом деле не являются папками, это фильтры . Они являются объектами только для пользовательского интерфейса, которые могут использоваться для организации элементов проекта в среде IDE. Однако они никоим образом не отражают структуру или расположение элементов на диске. Вы можете добавить файл из любого места на диске в любой фильтр в решении.

Компилятор ничего не знает об этих фильтрах; он знает только о файлах, которые существуют на диске.

В вашем случае файлы не находятся в папке проекта. Вы будете должны:

  • скопировать файлы в папку проекта, а затем добавить их в проект оттуда (щелкните правой кнопкой мыши на решение затем Add Existing Item), или

  • добавить файлы, откуда они есть, а затем добавить их местоположение в свойство «Дополнительные каталоги Include» в свойствах проекта.

Я не знаю, как бы IDE автоматически перемещал файлы в каталог проекта при копировании и вставке их в проект. Система проектов C++ принципиально отличается от проектной системы, используемой для C# и VB.

+0

Мне нравится примечание о том, что «проект на C++ принципиально отличается от C#». – Gqqnbig