Include values h windows

Директива #include в C/C++ с примерами

#include — это способ включения в программу стандартного или определяемого пользователем файла, который в основном пишется в начале любой программы на C/C++.

Директива

Эта директива читается препроцессором и приказывает ему вставить в данную программу содержимое пользовательского или системного заголовочного файла. Эти файлы в основном импортируются из внешнего источника в текущую программу.

Процесс импортирования таких файлов, которые могут быть системными или пользовательскими, известен как File Inclusion (англ. — включение файлов). Этот тип директивы препроцессора указывает компилятору включить файл в исходный код программы.

Вот два типа файлов, которые могут быть включены с помощью #include :

1. Заголовочный файл или стандартный файл. Это файл, который содержит C/C++ объявления функций и макроопределения для совместного использования между несколькими исходными файлами.

Такие функции, как printf() , scanf() , cout , cin и различные другие функции ввода-вывода или другие стандартные функции содержатся в различных заголовочных файлах. Поэтому для использования этих функций пользователям необходимо импортировать несколько заголовочных файлов, которые определяют требуемые функции.

2. Файлы, определяемые пользователем. Эти файлы похожи на заголовочные файлы, за исключением того, что они написаны и определены самим пользователем. Это избавляет пользователя от многократной записи определенной функции. После записи пользовательский файл может быть импортирован в любое место программы с помощью препроцессора #include .

Синтаксис

Включая использование » «. При использовании двойных кавычек (» «) препроцессор получает доступ к текущей директории, в которой находится исходный «header_file». Этот тип в основном используется для доступа к любым заголовочным файлам пользовательской программы или пользовательским файлам.

Включая использование . При импорте файла с использованием угловых скобок( ) препроцессор использует предопределенный путь к каталогу для доступа к файлу. В основном он используется для доступа к системным заголовочным файлам, расположенным в стандартных системных каталогах.

Пример 1. Здесь показан импорт системного заголовка ввода/вывода или стандартного файла.

Пример 2. Создание и импорт пользовательского файла.

Создание пользовательского заголовка с именем «process.h».

Созданный основной файл, в который будет включен вышеприведенный «process.h».

Объяснение

Включение файла «process.h» в другую программу. Теперь, когда нам нужно включить stdio.h в качестве #include , чтобы аналогичным образом использовать функцию printf() , нам также нужно включить заголовочный файл process.h в виде #include «process.h» .

Двойные кавычки » « предписывают препроцессору просмотреть текущую папку или стандартную папку всех заголовочных файлов, если они не найдены в данной папке.

Если вместо » » используются угловые скобки, то необходимо сохранить ее в стандартную папку заголовочных файлов. При использовании » » необходимо убедиться, что созданный заголовочный файл сохранен в той же папке, в которой находится текущий C-файл, использующий этот заголовочный файл.

Не удается открыть Windows.h в Microsoft Visual Studio

Прежде всего: я использую Microsoft Visual Studio 2012

Я разработчик на C # / Java и сейчас пытаюсь программировать для kinect, используя Microsoft SDK и C ++. Итак, я начал с примера Основы цвета, и я не могу заставить его скомпилировать.
Сначала ни один из классов не смог найти Windows.h. Поэтому я установил (или переустановил, я не уверен) Windows SDK и добавил каталог включения SDK во включаемый «путь» проекта. Тогда все проблемы исчезли, кроме одной:

И это ошибка. Нет причин, по которым система может найти его, потому что он используется в нескольких других файлах, только этот файл не может с ним работать. В качестве ссылки, весь файл, который содержит ошибки (ColorBasics.rc):

Решение

Если вы этого еще не сделали, попробуйте добавить «SDK Path\Include» чтобы:

И добавить «SDK Path\Lib» чтобы:

Также попробуйте поменять «Windows.h» в

Если это не поможет, проверьте физическое существование файла, он должен находиться в папке «\ VC \ PlatformSDK \ Include» в каталоге установки Visual Studio.

Другие решения

Запустите Visual Studio. Перейдите в Инструменты-> Параметры и разверните Проекты и решения.
Выберите каталоги VC ++ из дерева и выберите «Включить файлы» в комбинированном списке справа.

Тебе следует увидеть:

Если этого не хватает, вы нашли проблему. Если нет, найдите файл. Он должен быть расположен в

C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Включить

C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v6.0A \ Включить

если VS был установлен в каталог по умолчанию.

Читайте также:  Windows system32 wbem wmiprvse exe что это

Если вы ориентируетесь на Windows XP ( v140_xp ), попробуйте установить Поддержка Windows XP для C ++.

Начиная с Visual Studio 2012, набор инструментов по умолчанию (v110) прекратил поддержку Windows XP. В результате Windows.h ошибка может возникнуть, если ваш проект ориентирован на Windows XP с пакетами C ++ по умолчанию.

Проверьте, какая версия Windows SDK указана в вашем проекте Набор инструментов платформы. ( Project → Properties → Configuration Properties → General ). Если ваш Toolset заканчивается _xp Вам нужно будет установить поддержку XP.

Откройте установщик Visual Studio и нажмите изменять для вашей версии Visual Studio. Открой Отдельные компоненты вкладка и прокрутите вниз до Компиляторы, инструменты сборки и среды выполнения. Около дна, проверьте Поддержка Windows XP для C ++ и нажмите изменять начать установку.

Смотрите также:

Я получил эту ошибку фатальная ошибка lnk1104: не могу открыть файл ‘kernel32.lib’. эта ошибка возникает из-за отсутствия пути в каталогах VC ++. Для решения этой проблемы

Откройте Visual Studio 2008

  1. перейдите в каталог Tools-options-Projects and Solutions-VC ++- *
  2. затем в правом углу выберите Библиотека файлов
  3. здесь вам нужно добавить путь к kernel132.lib

В моем случае это C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Lib

#include Директива (C/C++) #include directive (C/C++)

Указывает препроцессору включить содержимое указанного файла в точку, где отображается директива. Tells the preprocessor to include the contents of a specified file at the point where the directive appears.

Синтаксис Syntax

#include » путь — спецификация « #include « path-spec «
#include путь — спецификация > #include path-spec >

Примечания Remarks

Можно организовать константы и определения макросов в включаемые файлы (также известные как заголовочные файлы), а затем использовать #include директивы для добавления их в любой исходный файл. You can organize constant and macro definitions into include files (also known as header files) and then use #include directives to add them to any source file. Включаемые файлы также позволяют внедрять объявления внешних переменных и сложных типов данных. Include files are also useful for incorporating declarations of external variables and complex data types. Типы можно определять и именовать только один раз во включаемом файле, созданном с этой целью. The types may be defined and named only once in an include file created for that purpose.

Путь-Spec — это имя файла, которому при необходимости может предшествовать Спецификация каталога. The path-spec is a file name that may optionally be preceded by a directory specification. Имя файла должно указывать на существующий файл. The file name must name an existing file. Синтаксис инструкции path-Spec зависит от операционной системы, в которой компилируется программа. The syntax of the path-spec depends on the operating system on which the program is compiled.

Сведения о том, как ссылаться на сборки в приложении C++, скомпилированном с помощью /clr , см. в разделе #using директива. For information about how to reference assemblies in a C++ application that’s compiled by using /clr , see #using directive.

Обе синтаксические формы приводят к #include замене директивы всем содержимым указанного файла. Both syntax forms cause the #include directive to be replaced by the entire contents of the specified file. Различие между двумя формами — это порядок путей, которые препроцессор ищет при неполном указании пути. The difference between the two forms is the order of the paths that the preprocessor searches when the path is incompletely specified. В приведенной ниже таблице показывается различие между этими формами синтаксиса. The following table shows the difference between the two syntax forms.

Форма синтаксиса Syntax Form Действие Action
Форма в кавычках Quoted form Препроцессор ищет включаемые файлы в следующем порядке: The preprocessor searches for include files in this order:

1) в том же каталоге, что и файл, содержащий #include инструкцию. 1) In the same directory as the file that contains the #include statement.

2) в каталогах открытых в данный момент файлов включения в порядке, в котором они были открыты. 2) In the directories of the currently opened include files, in the reverse order in which they were opened. Поиск начинается в каталоге родительского включаемого файла, а затем выполняется в каталогах всех включаемых файлов-прародителей. The search begins in the directory of the parent include file and continues upward through the directories of any grandparent include files.

3) вдоль пути, указанного в каждом /I параметре компилятора. 3) Along the path that’s specified by each /I compiler option.

4) вдоль путей, указанных в INCLUDE переменной среды. 4) Along the paths that are specified by the INCLUDE environment variable.

Форма с угловыми скобками Angle-bracket form Препроцессор ищет включаемые файлы в следующем порядке: The preprocessor searches for include files in this order:

1) вдоль пути, указанного в каждом /I параметре компилятора. 1) Along the path that’s specified by each /I compiler option.

2) при компиляции происходит в командной строке вместе с путями, заданными INCLUDE переменной среды. 2) When compiling occurs on the command line, along the paths that are specified by the INCLUDE environment variable.

Как только препроцессор найдет файл с заданным именем, поиск останавливается. The preprocessor stops searching as soon as it finds a file that has the given name. При заключении полной, неоднозначной спецификации пути для включаемого файла между двойными кавычками ( » » ) препроцессор выполняет поиск только по этой спецификации пути и игнорирует стандартные каталоги. If you enclose a complete, unambiguous path specification for the include file between double quotation marks ( » » ), the preprocessor searches only that path specification and ignores the standard directories.

Если имя файла, заключенное в двойные кавычки, является неполным указанием пути, препроцессор сначала выполняет поиск в каталоге родительского файла. If the file name that’s enclosed in double quotation marks is an incomplete path specification, the preprocessor first searches the parent file’s directory. Родительский файл — это файл, содержащий #include директиву. A parent file is the file that contains the #include directive. Например, если включить файл с именем file2 в файл с именем file1, то файл file1 будет родительским. For example, if you include a file named file2 in a file named file1, file1 is the parent file.

Включаемые файлы могут быть вложенными: #include директива может находиться в файле с именем другой #include директивы. Include files can be nested: An #include directive can appear in a file that’s named by another #include directive. Например, file2 может включать файл3. For example, file2 could include file3. В этом случае file1 будет по-прежнему являться родителем file2, но это было бы бабушке файл3. In this case, file1 would still be the parent of file2, but it would be the grandparent of file3.

Если включаемые файлы являются вложенными и при компиляции происходит в командной строке, поиск в каталоге начинается в каталоге родительского файла. When include files are nested and when compiling occurs on the command line, directory searching begins in the directory of the parent file. Затем он переходит по каталогам всех файлов «бабушке». Then it proceeds through the directories of any grandparent files. Таким образом, поиск начинается относительно каталога, в котором находится исходный файл, обрабатываемый в текущий момент. That is, searching begins relative to the directory that contains the source that’s currently being processed. Если файл не найден, Поиск перемещается в каталоги, заданные параметром компилятора /I (дополнительные каталоги включаемых файлов) . If the file isn’t found, the search moves to directories that are specified by the /I (Additional include directories) compiler option. Наконец, выполняется поиск каталогов, заданных INCLUDE переменной среды. Finally, the directories that are specified by the INCLUDE environment variable are searched.

В среде разработки Visual Studio INCLUDE переменная среды игнорируется. Within the Visual Studio development environment, the INCLUDE environment variable is ignored. Вместо них используются значения, указанные в свойствах проекта для каталогов включения. The values specified in the project properties for include directories are used instead. Дополнительные сведения о настройке каталогов включения в Visual Studio см. в разделе включаемые каталоги и Дополнительные каталоги включения. For more information about how to set the include directories in Visual Studio, see Include Directories and Additional Include Directories.

В приведенном ниже примере демонстрируется включение файлов с помощью угловых скобок: This example shows file inclusion by using angle brackets:

В этом примере в исходную программу добавляется содержимое файла с именем stdio.h . The example adds the contents of the file named stdio.h to the source program. Угловые скобки приводят препроцессору для поиска в каталогах, заданных INCLUDE переменной среды для stdio.h , после того, как он выполняет поиск в каталогах, заданных /I параметром компилятора. The angle brackets cause the preprocessor to search the directories that are specified by the INCLUDE environment variable for stdio.h , after it searches directories that are specified by the /I compiler option.

В следующем примере демонстрируется включение файлов, заданных в кавычках: The next example shows file inclusion by using the quoted form:

В примере добавляется содержимое файла, указанного defs.h в исходной программе. The example adds the contents of the file that’s specified by defs.h to the source program. Кавычки означают, что препроцессор сначала попытается найти этот файл в каталоге, содержащем родительский исходный файл. The quotation marks mean that the preprocessor first searches the directory that contains the parent source file.

Для включаемых файлов поддерживается до 10 уровней вложения. Nesting of include files can continue up to 10 levels. После завершения обработки вложенного объекта #include препроцессор сохраняет вложенный родительский файл в исходный исходный файл. When processing of the nested #include is finished, the preprocessor continues to insert the enclosing parent include file into the original source file.

Только для систем Майкрософт Microsoft-specific

Чтобы найти исходные файлы для включения, препроцессор сначала выполняет поиск в каталогах, заданных /I параметром компилятора. To locate the source files to include, the preprocessor first searches the directories specified by the /I compiler option. Если /I параметр отсутствует или неисправен, препроцессор использует INCLUDE переменную среды для поиска всех включаемых файлов в угловых скобках. If the /I option isn’t present, or if it fails, the preprocessor uses the INCLUDE environment variable to find any include files within angle brackets. INCLUDE Переменная среды и /I параметр компилятора могут содержать несколько путей, разделенных точкой с запятой ( ; ). The INCLUDE environment variable and /I compiler option can contain multiple paths, separated by semicolons ( ; ). Если в качестве части /I параметра или переменной среды отображается несколько каталогов INCLUDE , препроцессор ищет их в том порядке, в котором они отображаются. If more than one directory appears as part of the /I option or within the INCLUDE environment variable, the preprocessor searches them in the order in which they appear.

Представим себе следующую команду: For example, the command

приводит к тому, что препроцессор ищет в каталоге D:\msvc\include\ включаемые файлы, например stdio.h . causes the preprocessor to search the directory D:\msvc\include\ for include files such as stdio.h . Ниже еще один пример: The commands

Эта инструкция действуют точно так же. have the same effect. Если найти файл в обоих наборах каталогов не удастся, возникает неустранимая ошибка компилятора. If both sets of searches fail, a fatal compiler error is generated.

Если имя файла указано полностью для включаемого файла с путем, содержащим двоеточие (например, F:\MSVC\SPECIAL\INCL\TEST.H ), препроцессор следует за путем. If the file name is fully specified for an include file that has a path that includes a colon (for example, F:\MSVC\SPECIAL\INCL\TEST.H ), the preprocessor follows the path.

Для включаемых файлов, указанных как #include «path-spec» , поиск по каталогу начинается в каталоге родительского файла, а затем продолжается через каталоги всех файлов бабушкх. For include files that are specified as #include «path-spec» , directory search begins in the directory of the parent file and then proceeds through the directories of any grandparent files. То есть поиск начинается относительно каталога, содержащего обрабатываемый исходный файл. That is, the search begins relative to the directory that contains the source file that’s being processed. Если файл «бабушке» отсутствует, и файл по-прежнему не найден, поиск продолжается так, как если бы имя файла было заключено в угловые скобки. If there’s no grandparent file and the file still isn’t found, the search continues as if the file name were enclosed in angle brackets.

КОНЕЦ Только для систем Майкрософт END Microsoft-specific

Читайте также:  Start menu like windows 10
Оцените статью