Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение к проекту .lib-файла, описывающего dll 
:(
    Опции темы
Курсант
Дата 28.12.2018, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: нет
Всего: 4



Всем доброго времени суток!

Пытаюсь заставить работать преобразователь 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 конечно можно, но хотелось бы разобраться...

Заранее спасибо smile

Это сообщение отредактировал(а) Курсант - 28.12.2018, 16:08
PM ICQ Skype   Вверх
XPyCT
Дата 22.2.2019, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 24.8.2007
Где: Moldova

Репутация: 10
Всего: 10



А подключили саму либу?

1. Укажите путь поиска заголовка (header.h)
2. Укажите путь поиска статической библиотеки (library path)
3. Подключите в вашем юните статическую библиотеку  
Код

#include <vcl.h>
#pragma hdrstop
...
#pragma comment ( lib, "имя либы" )
...

все пути для заголовочный файлов и библиотек прописываете в Project::Options::Include path и Project::Options::library path

пс: насколько я понимаю он не видит хидера ([Linker Error]Unresolved external) вернее пытается найти в хидере.

В общем свое видение я отписал удачи!
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0971 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.