Перейти к содержанию
    

Builder C++ 6.0

Здравствуйте.

Делаю проект с параллельным потоком. В параллельном потоке работаю с библиотекой от FTDI. Как только не подключал я ftd2xx.h, всё без полезно.

Линкер выдаёт аналогичные ошибки этой:

[Linker Error] Unresolved external 'FT_OpenEx' referenced from D:\YANDEX DISK\GSM\PROGRAMSBORKA\THREADCOMMUNICATIONDEVICE.OBJ

Я понимаю, что он не видит тело функции, но побороть не получается.

Раньше я работал без параллельных потоков, в главном файле подключаю ftd2xx.h и всё работает, а тут что-то не получается.

Проект приложил.

ProgramSborka.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас ftd2xx.lib не включена в проект, а без нее dll-ки использовать нельзя.

 

Но и ее включение в проект вас не спасет, т.к. эта либа написана в другом формате (COFF вместо OMF).

 

Создате библиотеку ftd2xx.lib импорта заново средствами самого Билдера, натравив implib.exe на ftd2xx.dll.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В тех проектах(без параллельных потоков), где всё работает в файле .cpp формы (там же используются функции от FTDI) только одна строчка #include "FTD2XX.h".

Я так понимаю в этом файле и подключается библиотека.

Заменил свои файлы ftd2xx.dll, ftd2xx.h, ftd2xx.lib на файлы из работающих проектов.

Ошибка не пропала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Библиотека импорта создана заново. Вот так:

implib.exe -c ftd2xx.lib ftd2xx.dll

2) Вновь полученный файл ftd2xx.lib включен в проект.

 

Это всё. И скажите только, что не компилируется. :)

 

Получите:

PrGSMPower_2.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так, расскажите последовательность действий.

Мои:

файл ftd2xx.dll скопировал в папку c:\Program Files (x86)\Borland\CBuilder6\Bin\

в командной строке прописал implib.exe -c ftd2xx.lib ftd2xx.dll. Появился файл ftd2xx.lib.

Переместил ftd2xx.lib в папку с проектом. Компилирую и те же ошибки.

Сравнил ваш файл и мой ftd2xx.lib - совпадают.

 

Я так понимаю, он где-то в самом проекте подключается?

//-----------------------------------------------------------------------------------------------------------------------------------

 

Всё. понял. Пока писал, гуглил и нашёл. Shift+F11, выбрать расширение lib и выбрать файл.

А файл ftd2xx.lib поставляется компанией FTDI и он совпадает с генерированным.

 

Странно, что в других рабочих проектах я такого не делал.

Спасибо за помощь :a14:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так, расскажите последовательность действий.

Всё. понял. Пока писал, гуглил и нашёл. Shift+F11, выбрать расширение lib и выбрать файл.

А файл ftd2xx.lib поставляется компанией FTDI и он совпадает с генерированным.

 

Я же вам и файл проекта со вставленной либой в архив закатала. Почему бы вам было не скомпилировать присланное, вместо того, чтобы биться лбом об стенку?

 

Никаких Shift+F11 нажимать не надо - всё делается через меню стандартным образом: Project -> Add to Project... -> вколачиваете ftd2xx.lib и жмете OK. Точно так же добавляют в проект и все другие файлы. А если вы в последнем диалоге откроете "Files of type:", то будете удивлены обилием того, что можно еще включить в проект.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не. ваш пробовал, компилировал, работает. Но причину-то надо было понять)) Не обращаться же мне к вам с каждым новым проектом?)))

Shift+F11 то же самое. Горячие клавиши.

Изменено пользователем KARLSON

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не. ваш пробовал, компилировал, работает. Но причину-то надо было понять)) Не обращаться же мне к вам с каждым новым проектом?)))

Shift+F11 то же самое. Горячие клавиши.

 

Так я вам сразу ответила (2-е сообщение в теме):

У вас ftd2xx.lib не включена в проект, а без нее dll-ки использовать нельзя.

Или вы под выражением "включить в проект" понимаете что-то другое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, под этим я понимал записи в файлах с помощью include или pragma.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

KARLSON, вы уж потом расскажите, заработала ли у вас FTDI-библиотека. А то компиляция это только пол дела, работоспособность библиотеки она не гарантирует.

 

Свой интерес проявляю т.к. сама на эту библиотеку глаз положила :). Много раз использовала FTDI-драйвер, но только, как виртуальный COM-порт, а с живыми функциями дело иметь не приходилось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Библиотека работает. По крайней мере в старых проектах. У меня есть проект устройство с тремя контроллерами соединённых последовательно по UART. И мне, бывает, нужно обновить прошивку. И я в гуи с помощью FTDI прошиваю последовательно все 3 контроллера. 2 проекта уже рабочих есть с этой библиотекой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...