Страница 1 из 1
Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Чт ноя 10, 2011 12:41:51
daul_m
Мяу!
Необходимо написать на C# код для передачи данных по USB. Поставил микроcхему FT245BM (FIFOбуфер). скачал на нее дрова и файлы с расширением .dll (там находятся функции юзая которые можно шевелить микросхему).
Подскажите пожалуйста как эту самую dll подключить в Visual Studio. Когда подключаю среда мне пишет "не удается добавить ссылку. Убедитесь, что файл доступен, и является допустимой сборкой и компонентом COM"
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Пт ноя 11, 2011 10:09:49
BCluster
Код: Выделить всё
[DllImport("ft245.dll", CharSet = CharSet.Auto)]
public static extern IntPtr Foo(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
Однако в данном случае надо знать точно набор функций либы, и их параметры. Если они неизвестны можно применить
http://filebeam.com/0fd455e40003dd6dcae2f1d5f169e7c1и запустить с параметрами DUMPBIN.EXE /exports ft245.dll
но ваще это здец

например может оказаться что метод принимает указатель в параметре, в таком случае придется использовать небезопасный код:
unsafe {ft245.foo(&ch);}
как то так

Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Пн ноя 14, 2011 07:42:18
daul_m
Не подскажите где про все эти дела можно по подробнее почитать, с нуля )
Просто например вот этот фрагмент кода я вообще не понял
CharSet = CharSet.Auto)]
public static extern IntPtr Foo(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Вт ноя 15, 2011 15:44:22
BCluster
Ну CharSet это кодовая страница
Все остальное это объявление внешней функции. Компилятор не парсит библиотеку и не вытаскивает имена функций оттуда. Вы должны объявить каждую используемую функцию таким образом.
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Вт ноя 15, 2011 19:55:25
Coolish
Вообще у FTDI есть дотнетовская библиотека классов FTD2XX_NET.DLL, для её работы надо ставить драйверы "D2XX".
Скорей всего и с FT245 работать будет.
http://www.ftdichip.com/Support/Softwar ... CSharp.htmПравда, документация у них на сайте организована из рук вон плохо, мозг сломал, когда расковыривал.
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Вт ноя 15, 2011 21:39:28
BCluster
Вот! Это идеальное решение )
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Пт ноя 18, 2011 07:34:46
daul_m
Благодарю! )
Стучался в открытую дверь ))
Подскажите как использовать функцию
public FT_STATUS GetCOMPort(out string ComPortName)
я так понимаю я должен объявить указатель например string ComPortName;
и передавать в функцию указатель GetCOMPort(& ComPortName)
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Вс ноя 20, 2011 12:19:42
BCluster
это не си++, тут указатели использовать не правильно. Да и не получится в unsafe коде.
твой вызов будет:
Код: Выделить всё
string ComPortName;
GetCOMPort(out ComPortName);
в данном случае ты передаешь в функцию ссылку на ComPortName куда и будет записан результат.
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Пн ноя 21, 2011 06:25:24
daul_m
BCluster писал(а):это не си++, тут указатели использовать не правильно. Да и не получится в unsafe коде.
твой вызов будет:
Код: Выделить всё
string ComPortName;
GetCOMPort(out ComPortName);
в данном случае ты передаешь в функцию ссылку на ComPortName куда и будет записан результат.
Не могу прочитать серийный номер микросхемы следующим образом:
ftStatus = myMcs.GetSerialNumber(out SerialNumber);;
Console.WriteLine("SerialNumber = {0}\n", SerialNumber);
Console.WriteLine("SerialNumberDStatus = {0}\n\n", ftStatus);
Пишет в консоле:
SerialNumber =
SerialNumberDStatus = FT_OTHER_ERROR
Тоже самое с методом GetCOMPort
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Пн ноя 21, 2011 12:55:15
BCluster
полный код приведи, в этом куске как бы все ок.
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Чт ноя 24, 2011 05:34:38
daul_m
BCluster писал(а):полный код приведи, в этом куске как бы все ок.
Нашел косяк )
У FT245BM в отличии от FT245R отсутствует серийный номер (его необходимо прописывать с помощью специальной программы)
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Чт ноя 24, 2011 18:59:26
BCluster
молодец )
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Чт янв 15, 2015 16:45:42
Alex2014
Здравствуйте! подскажите неопытному, необходимо подключить устройство к ПК по USB, есть ли какие-нибудь примеры или что почитать как организовать связь с ПК с помощью FT245? желательно на русском и для чайников))))
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Добавлено: Чт янв 15, 2015 18:17:51
Мурик
Alex2014 писал(а):есть ли какие-нибудь примеры или что почитать как организовать связь с ПК с помощью FT245?
http://radiokot.ru/circuit/digital/pcmod/33/