Bezdepbonusu7Программирование: статьи и ответы

Интеграция проектов C++ в Visual Studio

Архив Bezdepbonusu74 мин чтения

Microsoft Visual Studio - интегрированная среда разработки компьютерных программ от Microsoft. В этом посте я рассказал о том, как настроить несколько проектов C++ в Visual Studio и как создать статическую библиотеку, которую можно использовать в нескольких проектах. Представьте ситуацию, что вы работаете над проектом инвестиционного анализа фондового рынка. В основном проекте под названием "Анализ" размещена программа, которая генерирует автоматические предложения о покупке или продаже акций на основе алгоритма. Однако алгоритм размещен в другом проекте под названием Engine, который является рабочей лошадкой для реализации алгоритма. В частности, анализ основного проекта создает исполняемый файл, связанный со статической библиотекой, скомпилированной из механизма проекта.

C:.
└───Investment
    ├───Analysis
    │   └───src
    ├───bin
    │   └───intermediates
    └───Engine
        └───src

Рисунок 1. Древовидная директория полученного решения.

Вот процедура, которую я предпочитаю:

  1. Создать новый проект (в рамках решения). В меню выберите ФАЙЛ › Создать › Проект › Visual C++ › Общие › Пустой проект. В диалоговом окне в поле Solution: введите "Инвестиции", проектName: "Анализ", родительский каталог решения Location: (например, c:\DEV). И установите флажок "Создать каталог для решения".
  2. Создайте и отредактируйте основной файл проекта. В Solution Explore щелкните значок "Показать все файлы". Щелкните правой кнопкой мыши значок проекта "Анализ", выберите "Добавить" > "Новый элемент" > "Файл C++ (.cpp)". В диалоговом окне в поле Name: введите "application.cpp", а в поле Location: введите C:\DEV\INVESTMENT\ANALYSIS\src. Я предпочитаю, чтобы файлы .cpp хранились в их собственной (исходный файл или, короче, src) папке. В конце этого поста я привожу для справки полный пример кода.
  3. Убедитесь, что основной файл является нашим исполняемым файлом. В обозревателе решений щелкните правой кнопкой мыши значок проекта "Анализ". Выберите "Свойства" > "Общие" в разделе "Свойства конфигурации" > "Configuration: Все конфигурации" > "Platform: Все платформы". Затем перейдите в "Свойства конфигурации" > "Общие" > "Параметры проекта по умолчанию" > "Тип конфигурации". Установите его на "приложение (.exe)".
  4. (Необязательно) добавить курс в основную папку проекта. В обозревателе решений щелкните правой кнопкой мыши папку src, выберите Добавить › Класс. В диалоговом окне введите Class Name: (например, AClass). Установите флажок "Виртуальный деструктор". Перетащите файлы - "AClass.cpp" и "AClass.h" в нашем примере - в папку src.
  5. Настроить каталог файлов. В обозревателе решений щелкните правой кнопкой мыши значок проекта "Анализ". Выберите "Свойства" > "Общие" в разделе "Свойства конфигурации" (опять же, обязательно установите Configuration: Все конфигурации > Platform: Все платформы) Output Directory: $(SolutionDir)bin\\$(Configuration)\, Intermediate Directory: $(SolutionDir)bin\промежуточные\$(платформа)\$(конфигурация)\
  6. Создавайте вспомогательные проекты для статической библиотеки. Щелкните правой кнопкой мыши значок решения, чтобы выбрать "Добавить" > "Новый проект..." > "Visual C++" > "Кроссплатформенный" > "Пустой проект". Name: ДВИГАТЕЛЬ. Location: C:\DEV\ИНВЕСТИЦИИ\
  7. Задайте свойства вспомогательного проекта для статической библиотеки. Щелкните правой кнопкой мыши значок "ДВИГАТЕЛЬ" и выберите "Свойства". В статусе для всех конфигураций и всех платформ перейдите в Свойства конфигурации › Общие › Параметры проекта по умолчанию › Тип конфигурации установлен на "Статическая библиотека (.lib)". Кроме того, повторите шаг 5 для этого вспомогательного проекта.
  8. Создайте и отредактируйте исходную библиотеку. Щелкните правой кнопкой мыши значок ENGINE › Добавить › Новый элемент › Файл C++ (.cpp) или файл заголовка (.h) › назначьте имя вновь созданному файлу › настройте Location:, например. C:\DEV\INVESTMENT\ENGINE\источник.
  9. Включить библиотеку в основной проект. Щелкните правой кнопкой мыши значок "Анализ" (примечание: "Анализ" - наш основной проект). Перейдите в Свойства. В разделе "Свойства конфигурации" > "C/C++" > "Общие" > "Дополнительные каталоги включения", чтобы включить исходный каталог библиотеки. В нашем случае это C:\DEV\INVESTMENT\ENGINE\src
  10. Связать библиотеку с основным проектом. В обозревателе решений щелкните правой кнопкой мыши значок "Анализ", выберите "Добавить" › "Ссылка" › проверьте вспомогательный проект.
// ______________ Analysis.cpp _________________
#include <Windows.h>
#include <iostream>
#include "AClass.h"
#include "Engine.h"
using std::cout;
using std::cin;
int main()
{
 SetConsoleTitle("console Output");
//Create an instance of the AClass class (instantiation)
 AClass object1;

    //Call the sayHello() function using the dot operator
 object1.SayHello();

    Engine::EngineMessage();

    cin.get();
 return 0;
}
// ______________ AClass.h ____________________
#pragma once
class AClass
{
public:
 AClass();
 virtual ~AClass();

    //Function declaration
 void SayHello();
};
// ______________ AClass.cpp __________________
#include <iostream>
#include "AClass.h"
using std::cout;
using std::endl;
AClass::AClass()
{
}
AClass::~AClass()
{
}
void AClass::SayHello()
{
 cout << " Say hello from AClass!" << endl;
 system("PAUSE");
}
// ______________ Engine.h ____________________
#pragma once
namespace Engine {
void EngineMessage();
}
// ______________ Engine.cpp __________________
#include <iostream>
#include "Engine.h"
using std::cout;
using std::cin;
using std::endl;
namespace Engine {
void EngineMessage()
 {
  cout << endl;
  cout << " Say hello from Engine!" << endl;
  system("PAUSE");
}
}

ProgrammingVisual Studio

Похожие материалы

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