none
StaticLib и DLL в VC++ RRS feed

  • Вопрос

  • Добрый вечер,

    Есть несколько VC++ проектов все они статические библиотеки и связанны между собой возможно ли изменить настройки проектов так чтобы после постройки проектов (build) в Debug\Release  директориях были и .lib и .dll бинарники? 

    15 ноября 2016 г. 20:07

Ответы

  • DLL не обязательно должна использовать (включать в себя) все функции статической библиотеки, она берет только нужные. Потому и размер меньше.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа Tuman_ 16 ноября 2016 г. 18:29
    16 ноября 2016 г. 10:42

Все ответы

  • Элементарно. Открываем "Свойства проекта" - "Общие" и меняем "Тип конфигурации" на "Динамическая библиотека (.dll)".

    Дальше остается только узнать как экспортировать идентификатор из DLL. Но это уже "совсем другая история" :)


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    15 ноября 2016 г. 20:42
  • Дальше остается только узнать как экспортировать идентификатор из DLL. Но это уже "совсем другая история"

    и это все? А что такое идентификаторы?
    16 ноября 2016 г. 6:28
  • А что такое идентификаторы?

    Вам бы учебник по C++ почитать. Идентификатор - это имя (функции, переменной, типа и т.п.). Чтобы это имя было доступно в другом двоичном модуле (exe, dll) его нужно "экспортировать" из данной dll.

    Это можно делать разными способами. Почитайте о них в MSDN Library.


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!


    • Изменено kosuke904 16 ноября 2016 г. 6:41
    16 ноября 2016 г. 6:39
  • в проекте есть staicLib и Dll, staticLib указана как зависимость для dll и dll вызывает функции staicLib . Если компилировать staitcLib отдельно то выходной файл 10МБ, а при компиляции dll  выходной файл 2МБ. Как так? 
    16 ноября 2016 г. 9:17
  • DLL не обязательно должна использовать (включать в себя) все функции статической библиотеки, она берет только нужные. Потому и размер меньше.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа Tuman_ 16 ноября 2016 г. 18:29
    16 ноября 2016 г. 10:42
  • И как я понял после этого dll может работать даже если статической библиотеки не будет вообще в системе?

    16 ноября 2016 г. 18:52
  • После чего "этого"? После сборки, видимо? Да, будет. Статические библиотеки для того и предназначены, чтобы встраиваться в исполняемый модуль.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    16 ноября 2016 г. 19:37