Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как создать заголовочный файл в visual studio


Первая программа в Visual Studio

Первая программа в Visual Studio

Последнее обновление: 28.08.2017

Для создания программы на C++ нам нужны, как минимум, две вещи: текстовый редактор для набора кода и компилятор для превращения этого кода в приложение. При этом для компиляции необходимо запускать консоль или терминал. Однако есть и более удобный способ - использование различных сред разработки или IDE. Они, как правило, содержит встроенный текстовый редактор, компилятор и позволяют скомпилировать и запустить программу по одному клику мыши, а также имеют еще множество разных вспомогательных возможностей.

Для программирования под Windows наиболее популярной средой разработки, если говорить о C++, является Visual Studio. Данную среду можно найти по ссылке https://www.visualstudio.com/ru/vs/. Она доступна в ряде редакций. В частности, можно использовать бесплатную и полнофункциональную версию Visual Studio 2017 Community.

После загрузки и запуска установщика Visual Studio в нем необходимо отметить пункт "Разработка классических приложений на C++":

Выбрав все необходимые пункты, нажмем ОК для запуска установки. После установки Visual Studio создадим первый проект. Для этого перейдем в меню File (Файл) -> New (Создать) -> Project... (Проект), и нам откроется окно создания нового проекта. В нем перейдем в левой части окна к языку С++ и выберем его подсекцию General:

В центральной части окна в качестве типа проекта выберем Empty Project, а внизу окна в поле для имени проекта дадим проекту имя HelloApp и нажмем на ОК для создания проекта.

После этого Visual Studio создаст пустой проект. Добавим в него текстовый файл для набора исходного кода. Для этого в окне Solution Explorer (Обозреватель решений) нажмем правой кнопкой мыши на узел Source Files и в контекстом меню выберем Add -> New Item...:

Затем нам откроется окно для добавления нового элемента:

Здесь нам надо выбрать пункт C++ File(.cpp), а внизу окна укажем для файла имя Hello.cpp. Как правило, исходные файлы на C++ имеют расширение .сpp.

После добавления файла изменим опции проекта. Для этого перейдем к пункту меню Project -> Properties:

И в открывшемся окне свойств проекта в левой части перейдем к секции Linker ->System и далее для поля SubSystem установим значение Console(/SUBSYSTEM:CONSOLE), выбрав нужный элемент в списке:

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

После добавления файла проект будет иметь следующую структуру:

Вкратце пробежимся по этой структуре. Окно Solution Explorer содержит в решение. В данном случае оно называется HelloApp. Решение может содержать несколько проектов. По умолчанию у нас один проект, который имеет то же имя - HelloApp. В проекте есть ряд узлов:

  • External Dependencies: отображает файлы, которые используются в файлах исходного кода, но не являются частью проекта

  • Header Files: предназначена для хранения заголовочных файлов с расширением .h

  • Resource Files: предназначена для хранения файлов ресурсов, например, изображений

  • Source Files: хранит файлы с исходным кодом

Теперь собственно создадим первую программу и определим в файле Hello.cpp простейший код, который будет выводить строку на консоль:


 #include <iostream> // подключаем заголовочный файл iostream
 
 int main() // определяем функцию main
 { // начало функции
 std::cout << "Hello World!"; // выводим строку на консоль
 return 0; // выходим из функции
 } 
 

Здесь использован весь тот код, который был рассмотрен в предыдущих темах про компиляцию с помощью g++.

Теперь запустим программу. Для этого в Visual Studio нажмем на сочетание клавиш Ctrl+F5 или выберем пункт меню Debug -> Start Without Debugging:

И в итоге Visual Studio передаст исходный код компилятору, который скомпилирует из кода исполняемый файл exe, который потом будет запущен на выполнение. И мы увидим на запущенной консоли наше сообщение:

После этого на жестком диске в проекте в папке Debug можно увидеть скомпилированный файл exe, который мы можем запускать независимо от Visual Studio:

В данном случае файл HelloApp.exe как раз и представляет скомпилированный исполняемый файл. И, кроме того, в той же папке автоматически генерируются два вспомогательных файла:

  • HelloApp.ilk: файл "incremental linker", который используется компоновщиком для ускорения компоновки

  • HelloApp.pdb: файл, который содержит отладочную информацию

09) Создание заголовочных файлов - Разные уроки по Программированию

Создание заголовочных файлов .h

    Для того чтобы понимать что за файлы мы подключаем к нашему проекту, нужно разобрать что такое заголовочные файлы и как они выглядят внутри.

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

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

    И при необходимости подключать данные готовые наборы к нужным проектам.

Пример:

    Для создания отдельного файла с функциям или процедурами и в C++ необходимо создать 2 файла с одним и тем же именем например но разными расширениями.

1) Файл содержащий код процедур и функций MyFaileForFunck.cpp 


2) Файл заголовка функции будет содержать ссылку на функцию в виде ее заголовка MyFaileForFunck.h


Подключение Файлов к проекту.

    Для того чтобы подключить данный набор процедур и функций к проекту необходимо скопировать 2 файла в папку с исходным кодом вашей программы. 

    Туда где лежит файл с расширением  cpp


    Если заголовочный файл лежит в той же папке что проект мы должны в операторе #include использовать двойные кавычки. Если мы положили файл в папку Include нашей среды разработки значит мы должны использовать <имя файла >  косые скобки.

    После подключения данного заголовочного файла нам станет доступна функция или функции описанные в данном файле.


C++ - Visual Studio - Как добавить файлы заголовка и cpp в проект библиотеки

Короче говоря: у меня были некоторые функции, которые, по моему мнению, могли бы быть полезны в библиотеке вместо простого копирования функций из одного проекта в следующий. Таким образом, я создал проект библиотеки и поместил мой заголовочный файл и файл cpp в проект, сослался на него со своим вторым проектом (в том же решении), и все работает нормально.

Вот моя проблема. Я хочу добавить другой набор функций в разные файлы. Итак, я создал новый заголовочный файл и новый файл cpp, но теперь я не могу include новый заголовочный файл. другой работает нормально, но новый не может быть включен, и VS дает мне следующие коды ошибок:

E1696 cannot open source file "2ndFunctionSet.h" [2ndProjectName] [FileNameA] C1083 include : '2ndFunctionSet.h' : No such file or directory [2ndProjectName] [FileNameA] 

Вот краткая информация о текущей структуре решения:

SolutionName |---project > CommonLibraries | |---{header files} | | |---baseFunctions.h | | |---2ndFunctionSet.h | |---{source files} | |---baseFunctions.cpp | |---2ndFunctionSet.cpp | |---project > 2ndProjectName |---{header files} | |---someClass.h | |---mainCode.h |---{source files} |---someClass.cpp |---mainCode.cpp 

оба файла cpp из общего libray включают свои заголовочные файлы и stdafx.h файл предварительной компиляции по умолчанию, и оба, похоже, созданы одинаково.

Можете ли вы помочь мне понять, что я сделал неправильно? Я давно не занимался с ++, поэтому, скорее всего, я допустил ошибку процедуры при создании проекта библиотеки или при создании нового файла набора функций.

0

Решение

Файлы не находятся в одной папке.

Вы также должны проверить, находятся ли файлы, которые «работают», в правильной папке:

  • Перейти на ваш файловый менеджер
  • Проверьте папку проекта библиотеки
  • Если файлы находятся не в той папке
    • Переместите их в правильную папку проекта
    • Добавить ссылку на местоположение новых файлов

Теперь о том, «Как включить эти файлы в проект того же решения»:

  • Зайдите в свойства вашего проекта «2ndProjectName»
  • "Configuration Properties" > "c/c++" > "General"
  • В «Дополнительном каталоге включения»: нажмите> изменить и перейдите к папке проекта библиотеки.
  • В обозревателе решений перейдите в свой проект «2ndProjectName»
  • Щелкните правой кнопкой мыши на «Ссылки»> «Добавить ссылку»
  • Убедитесь, что ваш библиотечный проект проверен

0

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

Других решений пока нет …

C++ - Создание hpp файла в Visual Studio

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

Как создать .hpp файлы?

1

Решение

Вы можете изменить расширение на любое другое, когда добавите новый файл.
Просто измените имя на «Header.h» или любое другое имя по умолчанию, которое вам дается.

4

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

.h является вполне допустимой альтернативой .hpp, Это просто расширение для заголовка, это не значит, что это с.

Ваш компилятор будет обрабатывать этот файл одинаково независимо от того, является ли расширение .h или же .hpp, Но если по какой-то причине вам все еще нужно .hpp расширение, просто нажмите Новый предмет ~> Заголовочный файл (.h) и внизу назовите его .hpp расширение.

В качестве альтернативы вы можете создать .h и просто переименуйте его прямо в обозревателе решений.

1

С/С++ на Linux в Visual Studio Code для начинающих / Блог компании Microsoft / Хабр

Давайте начистоту, мало кто использует отладчик GDB на Linux в консольном варианте. Но что, если добавить в него красивый интерфейс? Под катом вы найдёте пошаговую инструкцию отладки кода С/С++ на Linux в Visual Studio Code.



Передаю слово автору.

Относительно недавно я переехал на Linux. Разрабатывать на Windows, конечно, удобнее и приятнее, но и здесь я нашел эффективный способ легко и быстро отлаживать код на С/С++, не прибегая к таким методам как «printf-стайл отладки» и так далее.

Итак приступим. Писать в sublime (или gedit/kate/emacs), а запускать в терминале — так себе решение, ошибку при работе с динамическим распределением памяти вряд ли найдёшь с первого раза. А если проект трудоёмкий? У меня есть более удобное решение. Да и ещё поддержка Git в редакторе, одни плюсы.

Сегодня мы поговорим про Visual Studio Code.

Установка


Ubuntu/Debian
  1. Качаем версию пакета VS Code с расширением .deb
  2. Переходим в папку, куда скачался пакет (cd ~/Загрузки или cd ~/Downloads)
  3. Пишем, где (имя пакета).deb — название файла, который вы только что скачали:
    sudo dpkg -i (имя пакета).deb sudo apt-get install -f

OpenSUSE/SLE Based distrs
  1. Установим репозиторий:
    sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/zypp/repos.d/VScode.repo'

  2. Обновим пакеты и установим VS Code:
    sudo zypper refresh sudo zypper install code

Расширения для С/С++

Чтобы VS Code полностью сопровождал нас при работе с файлами С/С++, нужно установить расширение «cpptools». Также полезным будет поставить один из наборов сниппетов.

Настоятельно рекомендую включить автосохранение редактируемых файлов, это поможет нам в дальнейшем.

Идём дальше. Открываем любую папку (новую или нет, неважно).

У меня в этой папке уже есть пара файлов для работы с C/C++. Вы можете скопировать одну из своих наработок сюда или создать новый файл.

Осталось всего ничего. Настроить компиляцию в одну клавишу и научиться отлаживать без printf.

Шаг 1. Открываем файл .c/.cpp, который (обязательно) лежит в вашей папке.

Шаг 2. Нажимаем Ctrl+Shift+B. VS Code вам мягко намекнет, что он не знает как собирать ваш проект.


Шаг 3. Поэтому дальше настраиваем задачу сборки: выбираем «Настроить задачу сборки» -> «Others».

Шаг 4. Прописываем конфигурацию в соответствии с образцом. По сути мы пишем скрипт для консоли, так что всем кто имел дело с ней будет понятно дальнейшее. Прошу заметить, что для сборки исходников в системе должен стоять сам компилятор (gcc или другой, отличаться будет только значение поля command). Поэтому для компиляции .cpp, понадобится в поле command указать g++ или c++, а для .c gcc.

Шаг 5. В args прописываем аргументы, которые будут переданы на вход вашему компилятору. Напоминаю, что порядок должен быть примерно таким: -g, <имя файла>.

Внимание: Если в вашей программе используется несколько файлов с исходным кодом, то укажите их в разных аргументах через запятую. Также обязательным является ключ -g(а лучше даже -g3). Иначе вы не сможете отладить программу.

Если в проекте для сборки вы используете makefile, то в поле command введите make, а в качестве аргумента передайте директиву для сборки.


Шаг 6. Далее возвращаемся обратно к нашему исходнику. И нажимаем F5 и выбираем C++.

Шаг 7. Осталось только написать путь к файлу программы. По умолчанию это ${workspaceRoot}/a.out, но я в своем файле сборки указал флаг -o и переименовал файл скомпилированной программы, поэтому у меня путь до программы: ${workspaceRoot}/main.


Шаг 8. Всё, больше нам не нужно ничего для начала использования всех благ VS Code. Переходим к основному проекту.

Отладка


Для начала скомпилируем программу (нет, нет, убери терминал, теперь это делается по нажатию Ctrl+Shift+B).

Как вы видите в проводнике появился main, значит все в порядке и сборка прошла без ошибок. У меня не слишком большая программа, но выполняется она моментально. Одним словом, провал чистой воды, потому что отладка идет в отдельном терминале, который закрывается после того, как программа дошла в main() до "return 0;".


Пришло время для брейкпоинтов. Выберем строчку с "return 0;" и нажимаем F9.


Строчка, помеченная красной точкой слева — место, где остановится программа, при выполнении.

Далее нажимаем F5.

Как я и сказал, программа остановила выполнение. Обратите внимание на окно с локальными переменными.

Удобненько. Также при остановке можно наводить мышкой на переменные и структуры в коде и смотреть их значения.


Также, если на каком-то этапе выполнения вам нужно посмотреть пошаговое выполнение той или иной операции, например в цикле, то поставьте брейкпоинт перед ней и нажмите F10 для выполнения текущей строчки без захода в подпрограмму и F11 с заходом.

Также есть случаи, когда считать выражение очень муторно вручную, но для отладки вам нужно знать, например, значение суммы трех элементов массива, или значение большого логического выражения. Для этого существуют контрольные значения. Все это и многое другое могут показать вам Контрольные значения (или «watch»).

Важно:

  1. Для каждой папки вам нужно отдельно настроить файлы сборки и путь к программе.
  2. VS Code не решит ваших проблем, но поможет быстрее с ними разобраться. Причем в разы.
  3. После каждого изменения программы, ее нужно компилировать заново, нажимая Ctrl+Shift+B.

Полезные шорткаты можно посмотреть здесь.

Об авторе



Максимилиан Спиридонов — разработчик C#, студент МАИ, Microsoft Student Partner. В профессиональную разработку на .NET пришёл ещё в школе. Около года работал с реальными проектами на WPF(MVVM)+C#, MySQL, более 4-х лет разрабатывал на C#. Основная сфера интересов сейчас — это мобильная разработка на Xamarin. Также, по воле случая в сфере интересов оказались С/С++ и Linux.

Где Visual Studio ищет файлы заголовков c++?

существует более новый вопрос, что поражает проблему лучше спрашивать Как включить пути в Visual Studio?

там становится известно, как это сделать в более новых версиях VisualStudio

  • только в текущем проекте (поскольку вопрос задан здесь), а также
  • для каждого нового проекта по умолчанию

второй является то, что ответ Стива Уилкинсон выше объясняет, что, как он сам предположил, не то, что Microsoft порекомендовала бы.

скажи это shortway здесь: сделай это, но сделай это в пользовательском каталоге в

C:\Users\UserName\AppData\Local\Microsoft\MSBuild\v4.0

в XML-файле

Microsoft.СРР.С Win32.пользователь.реквизит

и/или

Microsoft.СРР.х64.пользователь.реквизит

и не в C:\program файлы-каталог, в котором, как ожидается, будет находиться неизмененный Заводской файл Microsoft.

тогда вы делаете это так, как VisualStudio делает это тоже, и все регулярно.

для получения дополнительной информации, почему это так, см. Мой ответ здесь.