|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.01.2021, 11:30 | #1 |
Пользователь
Регистрация: 02.04.2020
Сообщений: 30
|
Подключить стороннюю С++ DLL к проекту на VS2019
Есть сторонняя DLL от поставщика оборудования с примером использования на VC++.
Полгода назад я работал с ней, подключая к проекту на стареньком BCB6. Все замечательно сварилось и работало. Но потребовалось подключить еще одно оборудование к тому же проекту и поставщик предоставил объектную библиотечку программного интерфейса тоже с примером на VC++. Пользоваться устаревшей средой не стал и с граблями, но собрал демонстрашку поставщика на VS2019. Но попытка подцепить DLL, с которой я уже игрался в BCB6, окончилась провалом. Провал получается на функции LoadLibrary(DllPath). Эта функция прекрасно работала в старом компиляторе, и отказалась работать в проекте на VS2019. Ладно, чертыхнулся и попробовал вернуться в старую среду BCB6. Хрен тебе! VS2019 видимо обновила системный отладчик, и старая среда падает при попытке его подцепить. Но ведь проект работал в старой среде! Вопрос к знатокам: как "опустить" VS2019 так, чтобы можно было использовать функцию LoadLibrary для подгрузки сторонней DLL? Или есть иные пути решения? Или .Net так подмяла под себя средства разработки, что "назад пути нет"? Последний раз редактировалось AnPis; 15.01.2021 в 12:37. |
15.01.2021, 12:29 | #2 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
LoadLibrary прекрасно работает на VS2019. Куча проектов на вулкане ее используют.
|
15.01.2021, 12:42 | #3 |
Пользователь
Регистрация: 02.04.2020
Сообщений: 30
|
Я думал что что-то с путем к DLL (она лежала в стороне, в папке с SDK).
Добавил непосредственно в папку с exe, тот же результат: LoadLibrary выдает ошибку (ноль). Что может не нравиться? ПС: в SDK от поставщика есть примерчик на C#. Он нормально запускается. Но я уже пробовал подключать вчерашнюю библиотеку в проект C# - не хочет, говорит несовместима с .Net. Поэтому взялся за пример из того же SDK на С++. Последний раз редактировалось AnPis; 15.01.2021 в 12:53. |
15.01.2021, 13:23 | #4 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
|
15.01.2021, 13:33 | #5 |
Пользователь
Регистрация: 02.04.2020
Сообщений: 30
|
Я так понимаю, что вопрос опять упирается в отсутствие библиотеки импорта.
В SDK присутствуют только файлы DLL. Линкер в протоколе сборки пишет: "сборка модуля выполнена без символов". и выгружает ее. Старая среда видимо автоматически генерила функции поиска адресов, а теперь новая видимо не умеет этого делать и хочет библиотеку импорта. Не зря говорится: старый друг лучше новых двух... Последний раз редактировалось AnPis; 15.01.2021 в 13:35. |
15.01.2021, 13:34 | #6 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
Нет. Не генерила. Для LoadLibrary не нужна либа импорта. GetLastError что возвращает?
|
15.01.2021, 13:57 | #7 |
Пользователь
Регистрация: 02.04.2020
Сообщений: 30
|
Возвращает ошибку 193: "%1 не является приложением win32".
Видимо формат exe-файла не соответствует формату библиотеки. Надо поштудировать опци проекта. Переключил с 64 на 32 - тот же эффект и тот же код ошибки. Последний раз редактировалось AnPis; 15.01.2021 в 14:01. |
15.01.2021, 14:02 | #8 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
Выкладывайте dll
|
15.01.2021, 14:47 | #9 |
Пользователь
Регистрация: 02.04.2020
Сообщений: 30
|
Вот тут:
https://yadi.sk/d/X9k3x1TcY-VD8Q Но эта DLL нормально работает в проекте на BCB6 На всякий случай выложил этот консольный демопроектик: https://yadi.sk/d/0eEBRJD0bSWSOQ Правда чуток его поковырял: пробовал разный пути к DLL и вывод кода ошибки. Не помню, какой он в архиве 64 и 32 битный. Хочется понять причину затыка. Я в VS2019 новичок. Последний раз лет пять назад работал в VS2008. |
15.01.2021, 15:30 | #10 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
Проверяйте пути. И пустой проект, и ваш работает (естественно, вин32 вариант):
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проект DLL в VS2019 не создает import library | PAG | Visual C++ | 12 | 14.01.2021 07:55 |
Пытаюсь подключить к Unity стороннюю среду разработки. | realLarkin | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 0 | 14.12.2019 20:21 |
Подключить dll к проекту | Fakov | Общие вопросы Delphi | 10 | 16.06.2018 16:01 |
Как подключить .dll файл к проекту | free6878 | Помощь студентам | 0 | 03.07.2011 14:33 |
VC++. Подключить DLL к проекту. | TwiX | Visual C++ | 5 | 20.06.2011 01:46 |