Добавление моей DLL в проект Visual Studio в переполнении стека

Я работаю над проектом, который включает создание библиотеки динамических ссылок, поэтому я хочу протестировать ее в консольном приложении в Visual Studio.

DLL также сделана в Visual Studio, в ней не так много всего лишь нескольких функций. Я не уверен, если я просто должен включить заголовок библиотеки в включают панель каталогов в свойства, или сделать что-то еще

Многие люди говорят, что я должен добавить соответствующий .lib файл в каталоге библиотеки или справочника, но я не уверен, что VS генерирует .lib файл рядом с DLL. Я использую VS 2015.

9

Решение

У меня нет VS передо мной в этот самый момент, но это должны быть общие шаги для его настройки:

Properties->Linker->Input: your.lib
Properties->Linker->Additional Library Directories: ../your/bin
Properties->General->Compiler->Additional Include Directories: ../your/include

Для создания вашего приложения заголовки API библиотеки DLL должны быть включены во время компиляции, а файлы LIB — в корзину для времени компоновки. После того, как у вас есть EXE-файл приложения, все, что вам нужно, это DLL-библиотека, которая будет находиться в той же папке, что и ваш EXE-файл, когда он выполняется.

Возможно, вы также захотите добавить проект dll и проект приложения в общее решение в VS и добавить (щелкните правой кнопкой мыши) Project Dependency из приложения в dll. Это гарантирует правильный порядок построения, при условии, что вы вообще собираетесь строить dll.

9

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

Вы также можете сделать то, что я сделал.

  1. Вы можете создать Libs каталог внутри вашего каталога решений.
  2. Затем вы можете разместить свои файлы .DLL внутри Libs каталог или некоторый подкаталог внутри Libs

    • В моем случае я добавил весь SFML-2.3.2 там есть каталог с исходным кодом, .lib-файлами и .dll-файлами.
    • Я связал все, что мог, в свойствах проекта, но использовал макросы Visual Studio, чтобы заполнить путь к каталогу Solution. На всякий случай я хотел включить это в систему контроля версий и работать на ней с нескольких машин.
  3. Затем я открыл страницу свойств проекта.

  4. На странице свойств я пошел События сборки -> Событие после сборки -> Командная строка
  5. В пределах Командная строка, Вы можете добавить команду копирования, которая скопирует все необходимые файлы в тот же каталог, что и исполняемый файл, который будет нуждаться в них.
    • В моем случае я использовал: copy "$(SolutionDir)Libs\SFML-2.3.2\bin\*" "$(TargetDir)"
    • Я мог бы написать несколько команд, чтобы скопировать только нужные мне отдельные файлы, но я потратил целых три часа, пытаясь заставить SFML работать без фактической его установки.
2

По вопросам рекламы [email protected]