Подключить DLL в C# (методы микросхемы FT245BM).
Подключить DLL в C# (методы микросхемы FT245BM).
Мяу!
Необходимо написать на C# код для передачи данных по USB. Поставил микроcхему FT245BM (FIFOбуфер). скачал на нее дрова и файлы с расширением .dll (там находятся функции юзая которые можно шевелить микросхему).
Подскажите пожалуйста как эту самую dll подключить в Visual Studio. Когда подключаю среда мне пишет "не удается добавить ссылку. Убедитесь, что файл доступен, и является допустимой сборкой и компонентом COM"
Необходимо написать на C# код для передачи данных по USB. Поставил микроcхему FT245BM (FIFOбуфер). скачал на нее дрова и файлы с расширением .dll (там находятся функции юзая которые можно шевелить микросхему).
Подскажите пожалуйста как эту самую dll подключить в Visual Studio. Когда подключаю среда мне пишет "не удается добавить ссылку. Убедитесь, что файл доступен, и является допустимой сборкой и компонентом COM"
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Код: Выделить всё
[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 скачиваний
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Не подскажите где про все эти дела можно по подробнее почитать, с нуля )
Просто например вот этот фрагмент кода я вообще не понял
CharSet = CharSet.Auto)]
public static extern IntPtr Foo(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
Просто например вот этот фрагмент кода я вообще не понял
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).
Ну CharSet это кодовая страница
Все остальное это объявление внешней функции. Компилятор не парсит библиотеку и не вытаскивает имена функций оттуда. Вы должны объявить каждую используемую функцию таким образом.
Все остальное это объявление внешней функции. Компилятор не парсит библиотеку и не вытаскивает имена функций оттуда. Вы должны объявить каждую используемую функцию таким образом.
- Coolish
- Опытный кот
- Сообщения: 785
- Зарегистрирован: Сб фев 27, 2010 21:45:37
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Вообще у FTDI есть дотнетовская библиотека классов FTD2XX_NET.DLL, для её работы надо ставить драйверы "D2XX".
Скорей всего и с FT245 работать будет.
http://www.ftdichip.com/Support/Softwar ... CSharp.htm
Правда, документация у них на сайте организована из рук вон плохо, мозг сломал, когда расковыривал.
Скорей всего и с FT245 работать будет.
http://www.ftdichip.com/Support/Softwar ... CSharp.htm
Правда, документация у них на сайте организована из рук вон плохо, мозг сломал, когда расковыривал.
Сделать хотел грозу, а получил КоЗу
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Вот! Это идеальное решение )
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Благодарю! )
Стучался в открытую дверь ))
Подскажите как использовать функцию
public FT_STATUS GetCOMPort(out string ComPortName)
я так понимаю я должен объявить указатель например string ComPortName;
и передавать в функцию указатель GetCOMPort(& ComPortName)
Стучался в открытую дверь ))
Подскажите как использовать функцию
public FT_STATUS GetCOMPort(out string ComPortName)
я так понимаю я должен объявить указатель например string ComPortName;
и передавать в функцию указатель GetCOMPort(& ComPortName)
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Подключить DLL в C# (методы микросхемы FT245BM).
это не си++, тут указатели использовать не правильно. Да и не получится в unsafe коде.
твой вызов будет:
в данном случае ты передаешь в функцию ссылку на ComPortName куда и будет записан результат.
твой вызов будет:
Код: Выделить всё
string ComPortName;
GetCOMPort(out ComPortName);
в данном случае ты передаешь в функцию ссылку на ComPortName куда и будет записан результат.
Re: Подключить DLL в C# (методы микросхемы FT245BM).
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).
полный код приведи, в этом куске как бы все ок.
Re: Подключить DLL в C# (методы микросхемы FT245BM).
BCluster писал(а):полный код приведи, в этом куске как бы все ок.
Нашел косяк )
У FT245BM в отличии от FT245R отсутствует серийный номер (его необходимо прописывать с помощью специальной программы)
Re: Подключить DLL в C# (методы микросхемы FT245BM).
Здравствуйте! подскажите неопытному, необходимо подключить устройство к ПК по USB, есть ли какие-нибудь примеры или что почитать как организовать связь с ПК с помощью FT245? желательно на русском и для чайников))))
Re: Подключить DLL в C# (методы микросхемы FT245BM).
http://radiokot.ru/circuit/digital/pcmod/33/Alex2014 писал(а):есть ли какие-нибудь примеры или что почитать как организовать связь с ПК с помощью FT245?