Подключить DLL в C# (методы микросхемы FT245BM).

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
daul_m
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Пт фев 04, 2011 14:27:36

Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение daul_m »

Мяу!
Необходимо написать на C# код для передачи данных по USB. Поставил микроcхему FT245BM (FIFOбуфер). скачал на нее дрова и файлы с расширением .dll (там находятся функции юзая которые можно шевелить микросхему).
Подскажите пожалуйста как эту самую dll подключить в Visual Studio. Когда подключаю среда мне пишет "не удается добавить ссылку. Убедитесь, что файл доступен, и является допустимой сборкой и компонентом COM"
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение 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);}

как то так :)
Вложения
DUMPBIN.rar
(1.85 КБ) 213 скачиваний
daul_m
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Пт фев 04, 2011 14:27:36

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение daul_m »

Не подскажите где про все эти дела можно по подробнее почитать, с нуля )
Просто например вот этот фрагмент кода я вообще не понял :shock:
CharSet = CharSet.Auto)]
public static extern IntPtr Foo(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение BCluster »

Ну CharSet это кодовая страница
Все остальное это объявление внешней функции. Компилятор не парсит библиотеку и не вытаскивает имена функций оттуда. Вы должны объявить каждую используемую функцию таким образом.
Аватара пользователя
Coolish
Опытный кот
Сообщения: 785
Зарегистрирован: Сб фев 27, 2010 21:45:37
Откуда: Ростов-на-Дону
Контактная информация:

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение Coolish »

Вообще у FTDI есть дотнетовская библиотека классов FTD2XX_NET.DLL, для её работы надо ставить драйверы "D2XX".
Скорей всего и с FT245 работать будет.

http://www.ftdichip.com/Support/Softwar ... CSharp.htm

Правда, документация у них на сайте организована из рук вон плохо, мозг сломал, когда расковыривал.
Сделать хотел грозу, а получил КоЗу
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение BCluster »

Вот! Это идеальное решение )
daul_m
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Пт фев 04, 2011 14:27:36

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение daul_m »

Благодарю! )
Стучался в открытую дверь )) :))
Подскажите как использовать функцию
public FT_STATUS GetCOMPort(out string ComPortName)
я так понимаю я должен объявить указатель например string ComPortName;
и передавать в функцию указатель GetCOMPort(& ComPortName)
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение BCluster »

это не си++, тут указатели использовать не правильно. Да и не получится в unsafe коде.
твой вызов будет:

Код: Выделить всё

string ComPortName;
GetCOMPort(out ComPortName);

в данном случае ты передаешь в функцию ссылку на ComPortName куда и будет записан результат.
daul_m
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Пт фев 04, 2011 14:27:36

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение 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
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение BCluster »

полный код приведи, в этом куске как бы все ок.
daul_m
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Пт фев 04, 2011 14:27:36

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение daul_m »

BCluster писал(а):полный код приведи, в этом куске как бы все ок.

Нашел косяк )
У FT245BM в отличии от FT245R отсутствует серийный номер (его необходимо прописывать с помощью специальной программы)
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение BCluster »

молодец )
Alex2014
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Сб янв 11, 2014 17:13:19

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение Alex2014 »

Здравствуйте! подскажите неопытному, необходимо подключить устройство к ПК по USB, есть ли какие-нибудь примеры или что почитать как организовать связь с ПК с помощью FT245? желательно на русском и для чайников))))
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Подключить DLL в C# (методы микросхемы FT245BM).

Сообщение Мурик »

Alex2014 писал(а):есть ли какие-нибудь примеры или что почитать как организовать связь с ПК с помощью FT245?
http://radiokot.ru/circuit/digital/pcmod/33/
Ответить

Вернуться в «Интеграция с ПК»