Есть ли простой способ создать 64-битную JD2XX DLL? - PullRequest
1 голос
/ 15 октября 2010

Для доступа к FTDI платам USB из приложений Java я использую оболочку драйвера JD2XX (JD2XX.dll).Он отлично работает в 32-битных системах, но когда он загружается из 64-битной JVM, он говорит, что для 64-битной JVM невозможно загрузить 32-битную DLL.Очень понятно.Чтобы обойти эту небольшую проблему, я устанавливаю 32-разрядную JVM в 64-разрядных системах, и она работает нормально.Очень простое решение, которое может быть очень сложно объяснить клиенту!

По этой причине я хотел бы создать или иным образом получить 64-разрядную версию этого файла JD2XX.dll.Я хотел бы знать, если кто-то когда-либо делал это успешно, или как я мог продолжить.Я думал, что в проекте ftdi-win32 должна быть ссылка на 32-битную dll, которую я мог бы изменить на 64-битную ссылку на dll перед перекомпиляцией всего в 64-битной системе, но я не нашел.

Я был бы очень признателен за любую помощь по этому поводу.Я не чувствую, что нашел бы способ обойти эту проблему самостоятельно в ближайшее время.Файлы, которые я описал, можно найти в самых последних этих пакетах .

Большое спасибо,

MJ

Ответы [ 2 ]

4 голосов
/ 20 октября 2010

Мне наконец-то удалось создать этот 64-битный файл DLL. ...:)

Вот как я это получил:

  1. Загрузил пакет JD2XX (самый последний из которых датирован 20071214).
  2. Скачал mingw-w64 (личная сборка sezero) и распаковал его в C: \ (давая C: \ mingw64).
  3. Внесены некоторые изменения в пакет JD2XX.
    • Скорректированный Makefile.conf
      • Исправлены пути MINGW и JDK в соответствии с моей системой.
      • Выбранные ftdi-win32 и amd64
    • Переименовал уже сгенерированный 32-битный файл JD2XX.dll, чтобы программа make перестала говорить, что ничего не поделаешь.
    • Переименован в ftdi-win32 / libftd2xx.a, который является 32-битным ... Заменил его на копию ftdi-win32 / amd64 / ftd2xx64.lib (конечно, переименован в libftd2xx.a).
  4. Вызывается C: \ mingw64 \ bin \ mingw32-make.exe из основного каталога пакета JD2XX. Это создало новый файл JD2XX.DLL, который позволяет мне связываться с устройствами FTDI на моем 64-разрядном компьютере без необходимости использовать 32-разрядную JVM.

Сгенерированный файл для скачивания , если кому-то это нужно.

1 голос
/ 23 марта 2012

«Сгенерированный файл для загрузки» у меня не сработал, поэтому я следовал инструкциям и сделал это сам, что работает: http://dev.geogebra.org/download/lib/ftdi/JD2XX_64_2.08.17.dll

Похоже, что вы сможете собрать 64-битную DLL в 32-битной системе (или даже в Linux), загрузив правильную версию mingw-w64: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/sezero_4.5_20111101/

Кроме того, некоторые ссылки устарели. Это текущие:
d2xx.svn.sourceforge.net / ViewVC / D2XX / багажник /
www.ftdichip.com / Drivers / D2XX.htm

...