|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.01.2021, 10:16 | #1 |
Пользователь
Регистрация: 07.04.2016
Сообщений: 16
|
проект DLL в VS2019 не создает import library
Сделал DLL в VS 2019 на C++ и хочу ее потестить.
В пошаговом руководстве по созданию DLL на сайте документации мелкомягкого приводится простенький пример создания DLL и ее клиента, в котором вместе с самой DLL линкер(?) создает и библиотечку импорта .lib для вызова экспортируемых функций в клиентской задаче. Я проделал все то же самое и никакой библиотеки не создалось. Запуск тестовой задачи не получается: говорит ссылка на неразрешенный внешний символ. Но и сама DLL и заголовок ее экспорта включены в проект. Поигрался всякими опциями линкера и проекта - ничего не поменялось. Очень не хочется вручную грузить DLL и получать адреса экспортируемых функций. Это должна делать библиотечка, которая почему-то не создается, а линкер делать импорт автоматически не хочет. Куда смотреть? Подскажите, плз. |
13.01.2021, 11:07 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Ну, значит не совсем то проделали. На основании чего вы сделали вывод, что библиотека не создалась?
А вы библиотеку подцепили? Данная ошибка говорит о том, библиотека не подключена, иначе (в сочетании с тем, что утверждаете, что библиотека не создана) текст ошибки был бы другой. Включение заголовка отношения к линковке не имеет. Добавление DLL в проект в виде DLL - тоже. Вывод - вы не добавили библиотеку. |
13.01.2021, 11:44 | #3 | |||
Пользователь
Регистрация: 07.04.2016
Сообщений: 16
|
Цитата:
У них в примере: 1>Generating Code... 1> Creating library C:\Users\username\Source\Repos\Math Library\Debug\MathLibrary.lib and object C:\Users\username\Source\Repos\Math Library\Debug\MathLibrary.exp 1>MathLibrary.vcxproj -> C:\Users\username\Source\Repos\Math Library\Debug\MathLibrary.dll У меня в проекте: 1>Создание кода... 1>AdlinkDIOdll.vcxproj -> D:\VCPrj\DIO_Test_2015\Debug\ADLINKDIO.dll 1>Сборка проекта "AdlinkDIOdll.vcxproj" завершена. Цитата:
Цитата:
|
|||
13.01.2021, 12:42 | #4 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
|
13.01.2021, 12:49 | #5 |
Пользователь
Регистрация: 07.04.2016
Сообщений: 16
|
|
13.01.2021, 12:55 | #6 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
Прочитайте, что такое dll. Для связи вашей программы с dll нужен файл lib, где "описаны какие функции экспортируются и где".
|
13.01.2021, 13:42 | #7 |
Пользователь
Регистрация: 07.04.2016
Сообщений: 16
|
Фрося, Вы наверное не прочли первый мой пост.
Я его написал именно потому, что не могу сгенерить этот самый lib. Видимо какие-то опции надо задать, хотя перепробовал все что может подходить. Я могу получить статическую библиотеку .LIB. Это запросто. А библиотеку импорта - х.з. как заставить сделать. В этом вся и штука. |
13.01.2021, 13:48 | #8 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
Она генерируется вместе с dll. Смотрите папку.
|
13.01.2021, 14:42 | #9 |
Пользователь
Регистрация: 07.04.2016
Сообщений: 16
|
Вы наверное меня совсем за ... принимаете? И не читаете того что я тут привел в примерах.
НЕТ там НИЧЕГО. Почему и обращаюсь к публике сюда. И вообще в папке решения нет ничего. И я привел тут выше лог сборщика. В примере у мелкософта явно присутствует создание lib-a, а у меня только DLL в логе. Есть подозрение, что в 2019 они исключили эту процедуру нахрен и встроили связку в линкер. Но он ругается: не находит внешних объявлений. Пока плюнул на эту пакость мелкомягкого. Сгенерил статический Lib и пока работаю с ним. Но сам факт непонятен. Как и реализованная в этой версии VS концепция сборки проекта с использованием DLL. Неделя - коню под хвост. Досадно, блин! |
13.01.2021, 14:51 | #10 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
Ага, и у меня 2019 какая-то другая, и в офф примере https://docs.microsoft.com/en-us/cpp...?view=msvc-160 2019 прифотошоплена.
Открою вам секрет - он всегда там был, есть и будет. И не только для длл. Это уже другая сборка и ругается, т.к. вы ему lib импорта не дали. Выкладывайте уже куда-нибудь ваш проект dll, который не генерит lib. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Access Violation при Import Type Library MSO.DLL | hron66 | Lazarus, Free Pascal, CodeTyphon | 0 | 01.11.2019 16:22 |
resist color library 2.dll | stanger986 | Общие вопросы Delphi | 4 | 08.01.2019 16:39 |
netbeans не создает проект | -Cherry- | PHP | 0 | 05.09.2013 21:51 |
Установка пути к своим Class Library (.dll) | Руслантус | Общие вопросы .NET | 9 | 01.03.2011 14:13 |
import dll c++ | kaljan775 | Помощь студентам | 2 | 23.01.2011 18:52 |