KARLSON 1 16 августа, 2013 Опубликовано 16 августа, 2013 · Жалоба Здравствуйте. Делаю проект с параллельным потоком. В параллельном потоке работаю с библиотекой от FTDI. Как только не подключал я ftd2xx.h, всё без полезно. Линкер выдаёт аналогичные ошибки этой: [Linker Error] Unresolved external 'FT_OpenEx' referenced from D:\YANDEX DISK\GSM\PROGRAMSBORKA\THREADCOMMUNICATIONDEVICE.OBJ Я понимаю, что он не видит тело функции, но побороть не получается. Раньше я работал без параллельных потоков, в главном файле подключаю ftd2xx.h и всё работает, а тут что-то не получается. Проект приложил. ProgramSborka.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 43 16 августа, 2013 Опубликовано 16 августа, 2013 · Жалоба У вас ftd2xx.lib не включена в проект, а без нее dll-ки использовать нельзя. Но и ее включение в проект вас не спасет, т.к. эта либа написана в другом формате (COFF вместо OMF). Создате библиотеку ftd2xx.lib импорта заново средствами самого Билдера, натравив implib.exe на ftd2xx.dll. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 16 августа, 2013 Опубликовано 16 августа, 2013 · Жалоба В тех проектах(без параллельных потоков), где всё работает в файле .cpp формы (там же используются функции от FTDI) только одна строчка #include "FTD2XX.h". Я так понимаю в этом файле и подключается библиотека. Заменил свои файлы ftd2xx.dll, ftd2xx.h, ftd2xx.lib на файлы из работающих проектов. Ошибка не пропала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 43 16 августа, 2013 Опубликовано 16 августа, 2013 · Жалоба 1) Библиотека импорта создана заново. Вот так: implib.exe -c ftd2xx.lib ftd2xx.dll 2) Вновь полученный файл ftd2xx.lib включен в проект. Это всё. И скажите только, что не компилируется. :) Получите: PrGSMPower_2.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 16 августа, 2013 Опубликовано 16 августа, 2013 · Жалоба Так, расскажите последовательность действий. Мои: файл 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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 43 16 августа, 2013 Опубликовано 16 августа, 2013 · Жалоба Так, расскажите последовательность действий. Всё. понял. Пока писал, гуглил и нашёл. Shift+F11, выбрать расширение lib и выбрать файл. А файл ftd2xx.lib поставляется компанией FTDI и он совпадает с генерированным. Я же вам и файл проекта со вставленной либой в архив закатала. Почему бы вам было не скомпилировать присланное, вместо того, чтобы биться лбом об стенку? Никаких Shift+F11 нажимать не надо - всё делается через меню стандартным образом: Project -> Add to Project... -> вколачиваете ftd2xx.lib и жмете OK. Точно так же добавляют в проект и все другие файлы. А если вы в последнем диалоге откроете "Files of type:", то будете удивлены обилием того, что можно еще включить в проект. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 16 августа, 2013 Опубликовано 16 августа, 2013 (изменено) · Жалоба не. ваш пробовал, компилировал, работает. Но причину-то надо было понять)) Не обращаться же мне к вам с каждым новым проектом?))) Shift+F11 то же самое. Горячие клавиши. Изменено 16 августа, 2013 пользователем KARLSON Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 43 16 августа, 2013 Опубликовано 16 августа, 2013 · Жалоба не. ваш пробовал, компилировал, работает. Но причину-то надо было понять)) Не обращаться же мне к вам с каждым новым проектом?))) Shift+F11 то же самое. Горячие клавиши. Так я вам сразу ответила (2-е сообщение в теме): У вас ftd2xx.lib не включена в проект, а без нее dll-ки использовать нельзя. Или вы под выражением "включить в проект" понимаете что-то другое? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 16 августа, 2013 Опубликовано 16 августа, 2013 · Жалоба Да, под этим я понимал записи в файлах с помощью include или pragma. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 43 17 августа, 2013 Опубликовано 17 августа, 2013 · Жалоба KARLSON, вы уж потом расскажите, заработала ли у вас FTDI-библиотека. А то компиляция это только пол дела, работоспособность библиотеки она не гарантирует. Свой интерес проявляю т.к. сама на эту библиотеку глаз положила :). Много раз использовала FTDI-драйвер, но только, как виртуальный COM-порт, а с живыми функциями дело иметь не приходилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 17 августа, 2013 Опубликовано 17 августа, 2013 · Жалоба Библиотека работает. По крайней мере в старых проектах. У меня есть проект устройство с тремя контроллерами соединённых последовательно по UART. И мне, бывает, нужно обновить прошивку. И я в гуи с помощью FTDI прошиваю последовательно все 3 контроллера. 2 проекта уже рабочих есть с этой библиотекой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться