|
7 / 7 / 1
Регистрация: 10.10.2012
Сообщений: 47
|
||||||||||||||||
Маршалинг Waveform Audio20.05.2013, 15:19. Показов 1785. Ответов 8
Метки нет (Все метки)
Привет.
Возникла необходимость сделать wrapper для c# библиотеки Windows Waveform Audio. Пока работаю пока только с одной структурой и одной функцией и уже получаю ошибку: В среде выполнения обнаружена критическая ошибка. Ошибка произошла по адресу 0x5e815fb7 в потоке 0x1a84. Код ошибки 0xc0000005... Код c++:
Вот не могу понять в чем дело и все! Вроде делаю все согласно статье "Класс Marshal, использование PInvoke, небезопасный код (unsafe)". Кстати в результате эксперимента: Когда убрал CharSet = и вызывал waveInGetDevCapsW, то работало, но метод выдавал код ошибки в переменную j. Ошибка: некорректные параметры. P.S. С маршалингом сталкиваюсь первый раз, так что очень плохо тут ориентируюсь. Добавлено через 10 минут И еще наблюдение: Почему то размер структуры на 2 байта больше чем надо.
0
|
||||||||||||||||
| 20.05.2013, 15:19 | |
|
Ответы с готовыми решениями:
8
Управление Audio Source, полями AudioClip (Audio Clip) и Output (Audio Mixer Group) через скрипт Multimedia Audio Adapfer Realtek ALC655@SiS 7012 Audio Device Не работает звук - нет драйвера на Audio Device on High Definition Audio Bus |
|
Master of Orion
|
||||||
| 20.05.2013, 15:47 | ||||||
|
mib383, может потому что у вас строка в С++ включает символ \0, судя по вашему же комменту:
Добавлено через 1 минуту Хотя я с этим мало работал и не уверен что в этом проблема) Просто предположение
1
|
||||||
|
7 / 7 / 1
Регистрация: 10.10.2012
Сообщений: 47
|
|
| 20.05.2013, 17:15 [ТС] | |
|
Нет, дело не в этом.
Но все равно спасибо, вы меня на мысль натолкнули, что надо добавить pack=1 с структуре, чтоб убрать выравнивание, теперь размер адекватный. Но проблема все равно, увы, не решилась. Добавлено через 1 час 6 минут Проблему решил так: 1. waveInGetDevCapsW 2. struct pack(1) 3. charset = unicode Но это решение не красивое! Надо как-то по-другому.
0
|
|
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
|||||||
| 21.05.2013, 06:48 | |||||||
|
Касательно
Далее, класс WaveInCaps и так передается по ссылке, т.е. ref там лишний. Наконец, третий параметр - WINAPI uint == C# uint == UInt32. При чем тут UInt16?
1
|
|||||||
|
7 / 7 / 1
Регистрация: 10.10.2012
Сообщений: 47
|
|||||||||||||||||
| 21.05.2013, 09:21 [ТС] | |||||||||||||||||
|
UInt16 или 32 почти не влияет. А вот насчет ссылки это интересно. Делаю вместо class WaveInCaps - struct WaveInCaps и передаю по ссылке. Ошибку выдает уже не среда, а сама функция: не верно заданы параметры. На c++ этот код выглядит:
Добавлено через 16 минут Ребят! Спасибо большое - разобрался. Ключевой момент действительно оказался UINT(c++) = uint(c#). Главная ошибка была с MMVERSION = UINT. В итоге год выглядит так:
0
|
|||||||||||||||||
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
|||||||||
| 21.05.2013, 09:46 | |||||||||
0
|
|||||||||
|
7 / 7 / 1
Регистрация: 10.10.2012
Сообщений: 47
|
||
| 21.05.2013, 11:05 [ТС] | ||
|
При создании объекта структуры с помощью оператора new объект создается и вызывается соответствующий конструктор. В отличие от классов структуры можно создавать без использования оператора new. В таком случае вызов конструктора отсутствует, что делает выделение более эффективным. Однако поля остаются без значений и объект нельзя использовать до инициализации всех полей. Так что мой вариант тоже вроде как правильный. Насчет uint: согласен с вами, просто оно работало и так (пока дело не коснулось поля структуры), видимо оно само преобразовывалось в нужный формат. Еще раз спасибо.
0
|
||
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
||||||||
| 21.05.2013, 13:24 | ||||||||
.
0
|
||||||||
|
7 / 7 / 1
Регистрация: 10.10.2012
Сообщений: 47
|
||
| 21.05.2013, 14:36 [ТС] | ||
|
0
|
||
| 21.05.2013, 14:36 | |
|
Помогаю со студенческими работами здесь
9
Посчитать количество точек на Waveform Graph Waveform Визуализация на базе Bass.dll Драйвер на Realtek AC'97 Audio for VIA (R) Audio Controller Поместить данные из текстового файла в Waveform chart Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|