DSIoffe 2 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба Здравствуйте все! Подскажите, пожалуйста, как программа пользователя может найти в системе драйвер FTD2XX? Я его установил из дистрибутива в файле FTDI. Файл ftd2xx.dll лежит в каталоге с длинным именем, которое явно уникально для моего компьютера. А дальше что делать? Сейчас у меня при обращении к этой dll из моей программы возникает сообщение о том, что dll не найдена. Windows 10 64x. Про способ "положить эту dll рядом с исполняемым файлом" я знаю. Многие так делают. А как правильно? Заранее признателен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 66 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 50 минут назад, DSIoffe сказал: Подскажите, пожалуйста, как программа пользователя может найти в системе драйвер FTD2XX? Прописать в PATH? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба Может попробовать LoadLibraryExA() с установленным флажком LOAD_LIBRARY_SEARCH_DEFAULT_DIRS? Или другие флажки попробовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба Спасибо. 16 часов назад, HardEgor сказал: Прописать в PATH? Можно, наверное. Но другие-то драйверы такого не требуют, а работают. Значит, есть способ находить драйверы, не зная, где они лежат. 15 часов назад, jcxz сказал: Может попробовать LoadLibraryExA() Эта функция, опять-таки, хочет знать путь к dll. Проблема, похоже, не совсем простая. Производители ПЛИС Lattice и Gowin для работы со своими программаторами просто кладут эту dll в каталоги своих САПР. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба 13 минут назад, DSIoffe сказал: Эта функция, опять-таки, хочет знать путь к dll. Её же вроде можно без пути вызывать. И тогда она ищет в списке указанных директорий. Разве нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gerber 8 21 марта, 2023 Опубликовано 21 марта, 2023 (изменено) · Жалоба Не нужно напрямую работать с DLL FTD2xx, для этого в комплекте с DLL идут библиотеки "обёртки" под 32 и 64-бит ftd2xx.lib для сборки в Visual Studio. И заголовочный файл ftd2xx.h. Линкуете библиотеки себе в проект приложения и работаете с подключенными устройствами FTDI через функции FT_..., у FTDI есть подробный Programming Manual на этот счёт. Можно, кстати, работать вообще без DLL, статически слинковав библиотеку себе в проект (за счёт увеличения размера исполняемого файла, естественно). При этом на работу приложения не будут влиять последующие обновления FTD2xx.dll. Хорошо это или плохо - решать вам. В комплекте драйвера есть 2 вида библиотек: "большая" и "маленькая". "Большая" вмещает в себя весь функционал DLL, а "маленькая" является всего лишь интерфейсом к DLL. Изменено 21 марта, 2023 пользователем gerber Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба 8 минут назад, jcxz сказал: Её же вроде можно без пути вызывать. И тогда она ищет в списке указанных директорий. Разве нет? Да. Но другие драйверы не надо прописывать в path, они каким-то другим способом сообщают системе о себе. Значит, и этот должен был сообщить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
deni 6 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба 9 минут назад, DSIoffe сказал: Да. Но другие драйверы не надо прописывать в path, они каким-то другим способом сообщают системе о себе. А вы прочитали описание функции, о которой я писал? Там вовсе не о "прописывании в path" речь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба 44 minutes ago, DSIoffe said: Можно, наверное. Но другие-то драйверы такого не требуют, а работают. Значит, есть способ находить драйверы, не зная, где они лежат. у меня родной драйвер от фтди при установке просто скопировал ftd2xx.dll в windows\system32 соответственно ничего искать не надо. причем возможно vcp драйвера и так в винде есть поэтому любой usb->serial шнурок и так работать будет, а вот d2xx возможно нету, и его надо бы ручками установить. в картинках: https://ftdichip.com/wp-content/uploads/2022/05/AN_396-FTDI-Drivers-Installation-Guide-for-Windows-10_11.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба 3 часа назад, _pv сказал: в картинках: Спасибо! С Вашей подачи пошло 🙂 Я прочитал этот текст и сделал две вещи: 1) Запустил инсталлятор драйверов от FTDI с правами администратора. 2) Включил в Диспетчере устройств отображение скрытых устройств и удалил всё от FTDI вместе с файлами драйверов. После этого нашёл ftd2xx.dll в папках C:\Windows\System32\ и C:\Windows\SysWOW64\. И ещё что-то, начинающееся на ft. И моя программа нашла dll. А в Диспетчере устройств, наконец, при подключении платки с FT2232H стали появляться два COM порта вместо одного. 4 часа назад, jcxz сказал: А вы прочитали описание функции, о которой я писал? Там вовсе не о "прописывании в path" речь. Сначала мне попалось описание на каком-то левом ресурсе, и там было про path. Потом посмотрел у MS, там не было. Но я всё равно не понял, что делает эта функция и зачем она мне 😞 Не программист я 😞 4 часа назад, gerber сказал: Не нужно напрямую работать с DLL FTD2xx, для этого в комплекте с DLL идут библиотеки "обёртки" под 32 и 64-бит ftd2xx.lib для сборки в Visual Studio. И заголовочный файл ftd2xx.h. Почему не надо напрямую? Я работаю из Delphi. Заголовочный файл .pas вместо .h у меня есть. Всё хорошо работает. А подключить те lib я вряд ли смогу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться