Создание dll c visual studio 2017

Я использую Microsoft Visual Studio 2017 Community Edition и хочу создать библиотеку C ++ dll.library. Я использую следующее руководство:

Однако для VS 2017 нет руководства, только для 2015 года и ниже. VS 2017 не имеет проекта типа Win32 Console Application и не открывает диалоговое окно Win32 Application Wizard.

Как я могу создать C ++ DLL проект в VS2017?

Решение

Создайте проект DLL:

В этом наборе задач вы создаете проект для своей DLL, добавляете код и собираете его. Для начала запустите Visual Studio IDE и выполните вход, если это необходимо. Инструкции для Visual Studio 2017 версии 15.3 на первом месте. Инструкции для более ранних версий появятся позже, поэтому пропустите их, если нужно.

Чтобы создать DLL проект в Visual Studio 2017 версия 15.3 или новее

В строке меню выберите Файл, Новый, Проект, чтобы открыть Новый проект.
диалоговое окно.

На левой панели диалогового окна «Новый проект» разверните Установленные и
Visual C ++, если требуется, а затем выберите рабочий стол Windows. На центральной панели выберите Мастер рабочего стола Windows. Введите MathLibrary в
Поле Имя, чтобы указать имя для проекта.

  1. Нажмите кнопку «ОК», чтобы закрыть диалоговое окно «Новый проект» и запустить
    Мастер рабочего стола Windows.
  2. В мастере Windows Desktop Project в разделе «Тип приложения»
    выберите Dynamic Link Library (.dll).

  1. Нажмите кнопку ОК, чтобы создать проект.

И чтобы использовать этот .dll в клиентском приложении, следуйте этому ссылка на сайт .

Обновл. 13 Фев 2019 |

В качестве примера мы рассмотрим подключение библиотеки SDL к нашему проекту в Visual Studio 2017.

Шаг №1: Создаём папку для хранения библиотеки

Создаём папку Libs на диске C ( C:Libs ).

Шаг №2: Скачиваем и устанавливаем библиотеку

Заходим на сайт https://www.libsdl.org/download-2.0.php, пролистываем вниз до Development Libraries и скачиваем SDL2-devel-2.0.9-VC.zip (Visual C++ 32/64-bit). После успешного скачивания нужно разархивировать этот архив в папку Libs.

Шаг №3: Указываем путь к заголовочным файлам библиотеки

Открываем свой любой проект в Visual Studio или создаём новый, переходим в «Обозреватель решений» > кликаем правой кнопкой мыши (ПКМ) по названию нашего проекта > «Свойства»:

В «Свойствах конфигурации» открываем вкладку «С/С++» > «Общие» > «Дополнительные каталоги включаемых файлов» > нажимаем на стрелочку в конце > «Изменить»:

В появившемся окне кликаем на иконку с изображением папки, а затем на появившееся троеточие:

Читайте также:  Защита розетки от перегрузки

Заголовочные файлы находятся в папке include внутри нашей библиотеки, поэтому переходим в неё ( C:LibsSDL2-2.0.9include ) и нажимаем «Выбор папки», а затем «Ок»:

Шаг №4: Указываем путь к файлам с реализацией библиотеки

Переходим во вкладку «Компоновщик» > «Общие» > «Дополнительные каталоги библиотек» > стрелочку в конце > «Изменить»:

Опять же, нажимаем на иконку с папкой, а затем на появившееся троеточие. Нам нужно указать следующий путь: C:LibsSDL2-2.0.9libx86 . Будьте внимательны, в папке lib находятся две папки: x64 и x86. Даже если у вас Windows разрядности x64, указывать нужно папку x86. Дальше «Выбор папки», а затем «Ок»:

Затем переходим в «Компоновщик» > «Ввод» > «Дополнительные зависимости» > стрелочку вниз > «Изменить»:

В появившемся текстовом блоке вставляем:

Затем переходим в «Компоновщик» > «Система» > «Подсистема» > стрелочку вниз > выбираем «Консоль (/SUBSYSTEM:CONSOLE)» > «Применить» > «Ок»:

Шаг №5: Копируем dll-ку в папку с проектом

Переходим в папку x86 ( C:LibsSDL2-2.0.9libx86 ), копируем SDL2.dll и вставляем в папку с нашим проектом в Visual Studio. Чтобы просмотреть папку вашего проекта в Visual Studio 2017 – нажмите ПКМ по названию вашего проекта > «Открыть содержащую папку»:

Затем вставляем скопированный файл (SDL2.dll) в папку с проектом (где находится рабочий файл .cpp):

Шаг №6: Тестируем

Теперь, чтобы проверить, всё ли верно мы сделали – копируем и запускаем следующий код:

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

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

В этом пошаговом руководстве рассматриваются следующие задачи:

создание проекта DLL;

добавление класса в DLL;

создание консольного приложения, использующего динамическую компоновку времени загрузки для ссылки на библиотеку DLL;

использование функциональности из класса в приложении;

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

Это руководство предполагает знание основ языка C++.

Читайте также:  Fallout 4 обзор dlc

Создание проекта библиотеки динамической компоновки (DLL)

В строке меню выберите Файл, Создать, Проект.

В левой области диалогового она Создать проект разверните Установленные, Шаблоны, Visual C++ и затем выберите Win32.

В центральной области выберите Консольное приложение Win32.

Укажите имя для проекта, например MathFuncsDll, в поле Имя. Укажите имя для решения, например DynamicLibrary, в поле Имя решения. Нажмите кнопку ОК.

На странице Обзор диалогового окна Мастер приложений Win32 нажмите кнопку Далее.

На странице Параметры приложения выберите в поле Тип приложения пункт DLL.

Нажмите кнопку Готово, чтобы создать проект.

Добавление класса в библиотеку динамической компоновки

Чтобы создать файл заголовка для нового класса, в меню Проект выберите пункт Добавить новый элемент. В диалоговом окне Добавить новый элемент в левой области в разделе Visual C++ выберите Код. В центральной области выберите Заголовочный файл (.h). Укажите имя для заголовка файла, например MathFuncsDll.h, и нажмите кнопку Добавить. Отобразится пустой файл заголовка.

Добавьте следующий код в начало файла заголовка:

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

Когда символ MATHFUNCSDLL_EXPORTS определен, символ MATHFUNCSDLL_API установит модификатор __declspec(dllexport) в объявлениях функций-членов в этом коде. Этот модификатор разрешает экспорт функции библиотекой DLL для использования ее другими приложениями. Если символ MATHFUNCSDLL_EXPORTS не определен, например, когда файл заголовка включен приложением, символ MATHFUNCSDLL_API определяет модификатор __declspec(dllimport) в объявлениях функций-членов. Этот модификатор оптимизирует импорт функции в приложении. По умолчанию шаблон нового проекта для библиотеки DLL добавляет символ PROJECTNAME _EXPORTS в список определенных символов для проекта DLL. В этом примере символ MATHFUNCSDLL_EXPORTS определяется при сборке проекта MathFuncsDll. Для получения дополнительной информации см. dllexport, dllimport.

Примечание

Если проект DLL собирается в командной строке, воспользуйтесь параметром компилятора /D, чтобы определить символ MATHFUNCSDLL_EXPORTS.

В проекте MathFuncsDll в обозревателе решений в папке Исходные файлы откройте файл MathFuncsDll.cpp.

Реализуйте функциональность класса MyMathFuncs в исходном файле. Код должен выглядеть примерно следующим образом:

Скомпилируйте библиотеку динамической компоновки, выбрав Собрать решение в меню Сборка.

Примечание

При использовании выпуска Express, в котором не отображается меню Сборка, в строке меню выберите Сервис, Параметры, Расширенные параметры, чтобы включить это меню, а затем выберите Сборка, Собрать решение.

При сборке проекта из командной строки используйте параметр компилятора /LD, указывающий на то, что выходной файл должен являться DLL-файлом. Для получения дополнительной информации см. /MD, /MT, /LD (использование библиотеки времени выполнения). Используйте параметр компилятора /EHsc для включения обработки исключений С++. Для получения дополнительной информации см. Параметр /EH (модель обработки исключений).

Создание приложения, ссылающегося на DLL

Чтобы создать приложение С++, которое будет ссылаться и использовать созданную ранее библиотеку DLL, в меню Файл выберите пункт Создать и затем пункт Проект.

В левой области в категории Visual C++ выберите Win32.

В центральной области выберите Консольное приложение Win32.

Укажите имя проекта, например MyExecRefsDll, в поле Имя. В раскрывающемся списке рядом с полем Решение выберите Добавить в решение. В результате новый проект будет добавлен в решение, содержащее библиотеку DLL. Нажмите кнопку ОК.

На странице Обзор диалогового окна Мастер приложений Win32 нажмите кнопку Далее.

На странице Параметры приложения выберите в поле Тип приложения пункт Консольное приложение.

На странице Параметры приложения в разделе Дополнительные параметры снимите флажок Предкомпилированный заголовок.

Нажмите кнопку Готово, чтобы создать проект.

Использование функциональности из библиотеки классов в приложении

После создания консольного приложения будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя MyExecRefsDll.cpp.

Для использования в приложении математических процедур, созданных в библиотеке DLL, необходимо сослаться на эту библиотеку. Для этого в обозревателе решений выберите проект MyExecRefsDll, а затем в меню Проект выберите пункт Ссылки. В диалоговом окне Страницы свойств разверните узел Общие свойства, выберите .NET Framework и ссылки и нажмите кнопку Добавить новую ссылку. Дополнительные сведения о диалоговом окне Ссылки см. в разделе Добавление ссылок.

В диалоговом окне Добавление ссылки перечислены библиотеки, на которые можно создать ссылку. На вкладке Проект перечислены все проекты текущего решения и включенные в них библиотеки, если они есть. Установите флажок рядом с MathFuncsDll на вкладке Проекты, а затем нажмите кнопку ОК.

Для создания ссылки на файлы заголовка DLL необходимо изменить путь к каталогам включения. Для этого в диалоговом окне Окна свойств последовательно разверните узлы Свойства конфигурации и C/C++, а затем выберите Общие. В поле Дополнительные каталоги включаемых файлов укажите путь к месту размещения файла заголовка MathFuncsDll.h. Можно использовать относительный путь, например ..MathFuncsDll. Затем нажмите кнопку ОК.

Теперь класс MyMathFuncs можно использовать в приложении. Замените содержимое файла MyExecRefsDll.cpp следующим кодом.

Соберите исполняемый файл, выбрав команду Собрать решение в меню Сборка.

Запуск приложения

Убедитесь в том, что проект MyExecRefsDll выбран в качестве проекта по умолчанию. В обозревателе решений выберите MyExecRefsDll и затем в меню Проект выберите Назначить запускаемым проектом.

Чтобы запустить проект, в строке меню выберите Отладка, Запуск без отладки. Результат выполнения должен выглядеть примерно следующим образом:

a + b = 106,4
a – b = -91,6
a * b = 732,6
a / b = 0,0747475
Перехвачено исключение: b не может быть равно нулю!

Примечание

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *