Вложенная DLL включает конфигурацию в Visual Studio - PullRequest
0 голосов
/ 03 мая 2018

У меня Visual Studio Решение , содержащее несколько проектов:

  • Утилиты : DLL
  • RendererEngine : DLL
  • PhysicsEngine : DLL
  • GameProject : EXE

Вот схема: enter image description here

DLL-библиотеки Renderer и Physics включают DLL-библиотеку Utils. Все в конфигурации Visual Studio не было проблемой, пока я не решил создать этот GameProject (проект консольного приложения из Visual Studio). GameProject собирается создать экземпляр экспортируемых классов из движков Renderer и Physics.

Если я хочу, чтобы мой GameProject без проблем связывался Мне нужно включить include-папку и .lib моего проекта DLL Utils . И я не понимаю, почему.

Вот скриншоты конфигурации VS:

Включено Conf:

enter image description here

Lib Conf:

enter image description here

Это нормально, что мне нужно включить вложенную DLL в конфигурацию Visual Studio GameProject? У кого-нибудь была подобная проблема?

1 Ответ

0 голосов
/ 03 мая 2018

если ваша программа (.exe) использует ТОЛЬКО вещи, объявленные и / или определенные интерфейсами библиотек dll, тогда сборке вашей программы не нужно знать обо всем, что эти библиотеки используют в своих реализациях.

Однако, если что-либо из вашего utils-проекта становится видимым в заголовке интерфейса любого dll, и вы используете это в программном коде, то у вас есть зависимость от вашей программы к utils.dll. Теперь вам нужно сообщить вашей среде сборки, где найти материал.

быть конкретным:

если вам нужно включить каталог utils для вашей сборки, то есть включение заголовочного файла из utils-project в один или несколько заголовков Renderer- и / или PhysicsEngine.

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

Решение: очистите файлы заголовков интерфейса вашей библиотеки

...