Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Подключение к проекту .lib-файла, описывающего dll |
Автор: Курсант 28.12.2018, 15:46 |
Всем доброго времени суток! Пытаюсь заставить работать преобразователь VSCOM USB-CAN Plus под управлением моей программы на C++ Builder (версия 6). Изготовитель преобразователя распространяет со своим устройством следующий софт: - драйвер; - заголовочный файл vs_can_api.h - библиотеку vs_can_api.dll - lib-файл vs_can_api.lib Что я сделал: - заголовочный файл прописал через #define в модуле Unit1.cpp; - dll-ку закинул в папку проекта; - с помощью coff2omf преобразовал lib-файл в формат omf, т.к. builder требует именно этот формат; - подключил к проекту преобразованный lib-файл vs_can_api.lib; - в обработчике нажатия кнопки вызвал функцию, прототип которой прописан в vs_can_api.h, а именно VSCAN_Open(... ... ...). Попробовал собрать проект. В итоге получил сообщение [Linker Error]Unresolved external "_VSCAN_Open" referenced from ....UNIT1.OBJ Погуглил. Нашел, что Builder перед именами функций пишет знак _. Поправил прототип функции VSCAN_Open в h-файле, а именно сделал ее _stdcall. Попробовал собрать проект. В итоге получил сообщение [Linker Error]Unresolved external "VSCAN_Open" referenced from ....UNIT1.OBJ Погуглил. Нашел, что coff2omf не всегда хорошо преобразовывает из формата coff в формат omf. С помощью утилиты implib сделал .lib-файл для dll-ки vs_can_api.dll. Подключил к проекту этот lib-файл вместо старого. Попробовал собрать проект. В итоге получил сообщение [Linker Error]Unresolved external "VSCAN_Open (CHAR *SerialNrORComPortORNet, DWORD Mode)" referenced from ....UNIT1.OBJ Как его штатными способами заставить работать? Динамически подключиться к dll конечно можно, но хотелось бы разобраться... Заранее спасибо ![]() |
Автор: XPyCT 22.2.2019, 09:33 | ||
А подключили саму либу? 1. Укажите путь поиска заголовка (header.h) 2. Укажите путь поиска статической библиотеки (library path) 3. Подключите в вашем юните статическую библиотеку
все пути для заголовочный файлов и библиотек прописываете в Project::Options::Include path и Project::Options::library path пс: насколько я понимаю он не видит хидера ([Linker Error]Unresolved external) вернее пытается найти в хидере. В общем свое видение я отписал удачи! |