Визуализация музыки (DirectShow, IUnknown)

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Визуализация музыки (DirectShow, IUnknown)

Сообщение Хакер » 04.06.2011 (Сб) 13:42

BV писал(а):Хакер, существуют другие в жизни радости, кроме как подвязывание костылей к VB6.

Твоё неверное мнение на этот счёт я уже слышал. Подключение TLB — это не костыль. Это прямая штатная (одна из главных) возможность VB, для которой сделан свой пункт меню и свой диалог.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Визуализация музыки (DirectShow, IUnknown)

Сообщение Alprog » 04.06.2011 (Сб) 13:56

Самому думать — никак?

Я потратил на это 3 вечера. Узнал много нового о COM, о существовании MIDL, познакомился с замечательным языком IDL.
И для меня предельно ясно, что мне нужно потратить в разы больше времени, прежде чем я начну разбираться во всём этом на должном уровне.
В то же время, написание того же самого на плюсах заняло всего несколько часов. В принципе, я могу сейчас обернуть это в DLL и спокойно продолжить работать в VB, без потери драгоценного времени.

Нет, я не спорю, уметь править интерфейсы - навык полезный для общего развития.
Но разбираться и экспериментировать я предпочитаю на чём-то простом, знакомом и запускающимся. И когда есть на то настроение и время.
Но никак не на запутанном директ-шоу, который не запускается и который я в первый раз вижу. При том, что хочется поскорее заняться самой визуализацией. Пока настроение ковыряться с ней не пропало :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Визуализация музыки (DirectShow, IUnknown)

Сообщение Хакер » 04.06.2011 (Сб) 14:08

Alprog писал(а):В принципе, я могу сейчас обернуть это в DLL и спокойно продолжить работать в VB, без потери драгоценного времени.

Это не соответствует замечательному принципу. Программист должен делать больше действий, чтобы программа выполняла меньше, а не наоборот. Исключительно по одной причине, кстати: программист выполняет свою задачу (создание программы) один раз, а созданная программа затем выполняет свою задачу много раз.

Ну очень это глупо: из-за неумения адаптировать описание функции писать целую обёртку над функцией на другом языке, допускающим выстрел себе в ногу.

Alprog писал(а):Нет, я не спорю, уметь править интерфейсы - навык полезный для общего развития.

Давай так. Описывать интерфейсы самому с нуля точно не нужно. Часть интерфейсов уже объявлена в штатной TLB. Если что-то и не объявлено, то подойдёт сишное объявление. Остаётся только один момент: в объявлении встречаются типы, которые не поддерживаются VB. Правила избавления от этих типов предельно просты:
  • Указатели на плохие типы заменяются As Long в структурах и возвратах, и на As Long или As Any в аргументах.
  • Плохие типы сами по себе заменяются на массивы As Byte/As Integer/As Long и т.п. подходящего размера в структурах, и на на нужное число аргументов в параметрах.
  • Указатели (1-уровневые) на поддерживаемые типы объявляются с ByRef (это даже не правило, а очевидная вещь)
  • Если если в качестве значения такого указателя предполагается передача NULL, то нужно использовать As Any, потому что VB не разрашает передачу ссылки ни на что.

Не надо больше ничего читать и эксперементировать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.

Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 9

    TopList