Змінюй хід війни! Допомагай ЗСУ!

библиотека winmm.dll и VB.net (midi)

🟡 15:37 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
Статус: Offline
Реєстрація: 04.03.2009
Повідом.: 122
  • 🟡 15:37 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #1
библиотека winmm.dll и VB.net (midi)

Собрал конвертер USB-UART и установил дрова вирт. com порта. Порт мне нужен для передачи midi сообщений в виртуальный midi порт.
Я знаю только азы программирования, и поэтому взялся программировать на VB.net (C++ не освоил).

Написал программку, которая определяет мой порт, тестирует его на работоспособность (в loop-back режиме). И вот осталось самое главное - передать принятое на вход порта midi сообщение.
Мне нужна помощь в оформлении этого процесса.

Во-первых: я нигде не могу найти толковое описание функций winmm.dll для работы с миди - в одно источнике одно написано, в другом другое...

Разобрался толком с функцией midiIn(OUT)GetDevCaps, ну и, понятно, с функцией определения количества миди портов.

Но вот по поводу midiIn(Out)Open и midiOutShortMsg не разобрался :)
Не разобрался конкретно со структурами и типами данных, которые запрашивает функция.

Еще один момент: используя объект SerialPort в Visual Basic .NET, я не смог правильно оформить входящее сообщение в миди команду. Просто я не очень знаком с такими типами данных.

Из серийного порта я получаю тип данных string или byte(), char(), а функция просит у меня другой тип данных - какой - не разобрался.

В С++ все просто - там есть тип DWORD, а в VB эквивалента я не нашел.

Подскажите мне, пожалуйста, как мне оформить эти вопросы в среде VB
 
  • 🟡 15:37 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #2
Из серийного порта я получаю тип данных string или byte(), char(), а функция просит у меня другой тип данных - какой - не разобрался.

Доброе время суток, в библиотеке winmm.dll я не силен, но судя по изложенному выше я понял, что требуется работа с портом, в частности (СОМ). Попробуйте все таки разобраться, какой именно тип данных требуется вашей функции (попробуйте передать туда что попало, компилятор обязательно ругнется на не соответствие типов и попросит привести тип к нужному).
 
  • 🟡 15:37 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #3
В том то и дело, что в разных источниках указывается разный тип данных - в одном это определенная структура, в другом - просто тип integer (я же сам объявляю функцию из библиотеки и указываю типы данных). Вообще мне немножко не понятен тип сообщений миди. Может кно-нибудь посмотрел бы в инэте структуру миди сообщения и разъяснил мне как привести сообщение порта конкретно к миди сообщению, какую функцию использовать (SerialPort.ReadLine, SerialPort.read или SerialPort.ReadExisting). Возможно, нужно считывать короткое миди сообщение, записывая его в буфер (SerialPort.Read), но тогда я получаю массив данных, для которого мне нужно указать offset и размер (наверное в байтах). Но массив передать в миди порт я не могу - там используется другая структура.

Помогите, пожалуйста!!!
 
Назад
Зверху Знизу