Помогите понять фундаментальный принцип работы с этим:
Есть API функция: function BASS_MIDI_InGetDeviceInfo(device: DWORD; var info: BASS_MIDI_DEVICEINFO): BOOL; stdcall; external bassmididll;
ее задача - выдать мне название девайса по его номеру.
В скобках она от меня хочет получить:
1. device: DWORD - номер устройства. (тут все понятно)
2. var info: BASS_MIDI_DEVICEINFO
Со вторым я немогу понять что ей давать?
BASS_MIDI_DEVICEINFO - в pas файле, это вроди тип для возврата имени устройства:
BASS_MIDI_DEVICEINFO = record
name: PAnsiChar; // description
Зачем второе тут стоит, если я хочу это от нее получить, можете растолковать?
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
|
|||
карма: 0 |
|
Ответов: 3349
Рейтинг: 233
|
|||
Это тип.
|
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Ivann, твой код я, вроде, понял.
Но, зачем функция BASS_MIDI_InGetDeviceInfo(device, dvcinfo), от меня, хочет два параметра, вместо отного - не понял. или var info: BASS_MIDI_DEVICEINFO - это не ввод параметра в функцию, а какой-то знак ей (мол, куда выводить, или иное шаманство)? ------------ Дoбавленo в 18.09: Я себе представлял так: имяфункции(входнойпараметр, входнойпараметр, входнойпараметр); типвывода |
|||
карма: 0 |
|
Ответов: 3349
Рейтинг: 233
|
|||
login, очевидно, что данная функция, записывает результат в переменную info.
|
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
ОТлично, определенность есть, это хорошо.
Кажется начало доходить, "BASS_MIDI_DEVICEINFO" это просто "слово", которое надо зачем-то бросить в дллку.. ------------ Дoбавленo в 18.35: В итоге не работает, или я не понял. Вот такой код я написал в элемент:
и получил красным: "Undeclared identifier: 'BASS_MIDI_DEVICEINFO'" |
|||
карма: 0 |
|
Ответов: 8926
Рейтинг: 823
|
|||
login, сначала надо получить идентификатор h, а уже потом запрашивать информацию
|
|||
карма: 19 |
| ||
Голосовали: | login |
Ответов: 3349
Рейтинг: 233
|
|||
login, сначала обьяви переменную типа BASS_MIDI_DEVICEINFO например с именем test и потом, читай, пиши её.
|
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Леонид, девайсы в басс библиотеках обычно идут от нуля, а я знаю какое устройство у меня там.
Проэкт даже не компилируется. Запроса еще нет как бы. |
|||
карма: 0 |
|
Ответов: 3349
Рейтинг: 233
|
|||
В объявление ведь сказано что переменная должна быть типа BASS_MIDI_DEVICEINFO. |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Но когда я так делаю то в строке info:BASS_MIDI_DEVICEINFO я получаю при компиляции: Error: Undeclared identifier: 'BASS_MIDI_DEVICEINFO'
|
|||
карма: 0 |
|
Ответов: 3349
Рейтинг: 233
|
|||
Зайди в руму, а то форум загрезнять не охота
|
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
То-есть оно не видит такой тип, и не можут его присвоить.
------------ Дoбавленo в 18.49: Ivann, А что такое рума? как зайти? |
|||
карма: 0 |
|
Ответов: 3349
Рейтинг: 233
|
|||
http://hiasm.com/forum.html?q=3&t=53088
------------ Дoбавленo в 18.54: Вот это у тебя работает?
|
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Ivann, мне все растолковал в руме. Все заработало! Тема закрыта.
Всем спасибо за помощ! |
|||
карма: 0 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Я закончил этот компонент, все работает, но!
Как только на миди-вход подается хоть одна нота, приложение сразу слетает. (если быть точным то даже просто с подключенным, к миди-входу, инструментом, нельзя нажать "Midi_in_Start" прога слетает, с отключенным шнуром она работает)
Их пример synth.exe из архива прекрасно работает с теми же DLL-лками. http://hiasm.com/forum_serv.php?q=56&id=1759 |
|||
карма: 0 |
| ||
файлы: 1 | code_20622.txt [6KB] [388] |
30