Russian Qt Forum
Ноябрь 23, 2024, 13:28
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Общий
>
SIGSEVG(отладчик) Segmentation fault...
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: SIGSEVG(отладчик) Segmentation fault... (Прочитано 5233 раз)
Aeromiss
Гость
SIGSEVG(отладчик) Segmentation fault...
«
:
Декабрь 15, 2010, 03:42 »
LPHMIXEROBJ ghmx;
MMRESULT mmr;
int Receiver::GetMasterVolumeControlID()
{
// get dwLineID
MIXERLINE mxl;
mxl.cbStruct = sizeof(MIXERLINE);
mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
if (::mixerGetLineInfo(*ghmx, &mxl, // здесь происходит SIGSEVG
MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_COMPONENTTYPE)
!= MMSYSERR_NOERROR)
return 34;
// get dwControlID
MIXERCONTROL mxc;
MIXERLINECONTROLS mxlc;
mxlc.cbStruct = sizeof(MIXERLINECONTROLS);
mxlc.dwLineID = mxl.dwLineID;
mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
mxlc.cControls = 1;
mxlc.cbmxctrl = sizeof(MIXERCONTROL);
mxlc.pamxctrl = &mxc;
if (mixerGetLineControls(*ghmx, &mxlc,
MIXER_OBJECTF_HMIXER | MIXER_GETLINECONTROLSF_ONEBYTYPE)
!= MMSYSERR_NOERROR)
return 34;
return mxc.dwControlID;
}
bool Receiver::SetVolume(DWORD dwVolume)
{
MIXERCONTROLDETAILS mxcd;
MIXERCONTROLDETAILS_UNSIGNED mxcd_u;
mxcd.cbStruct = sizeof(mxcd);
mxcd.dwControlID = GetMasterVolumeControlID();
mxcd.cChannels = 1;
mxcd.cMultipleItems = 0;
mxcd.cbDetails = 4;
mxcd.paDetails = &mxcd_u;
mmr = mixerGetControlDetails(*ghmx, &mxcd, 0L);
if (MMSYSERR_NOERROR != mmr) return FALSE;
mxcd_u.dwValue = dwVolume;
mmr = mixerSetControlDetails(*ghmx, &mxcd, 0L);
if (MMSYSERR_NOERROR != mmr) return FALSE;
return TRUE;
}
void Receiver::Volume() //первоначальный вызов этой функции
{
SetVolume((DWORD)0x0000);
}
Скажите плс что да как бороться?
«
Последнее редактирование: Декабрь 15, 2010, 04:23 от Aeromiss
»
Записан
Fat-Zer
Гость
Re: SIGSEVG(отладчик) Segmentation fault...
«
Ответ #1 :
Декабрь 15, 2010, 03:59 »
пакажите заголовок mixerGetLineInfo.
И всё, что капсом набрано(кроме того, что очевидно какие-то флаги), это классы или дефайны? Если дефайны, то тоже покажите.
«
Последнее редактирование: Декабрь 15, 2010, 04:03 от Fat-Zer
»
Записан
Aeromiss
Гость
Re: SIGSEVG(отладчик) Segmentation fault...
«
Ответ #2 :
Декабрь 15, 2010, 04:05 »
а тут кароче winapi идет и используются
#include "windows.h"
#include <mmsystem.h>
ну если интересно то глянь в mmsystem...=) они там все капсом набраны. Ну.. вообщем как в либе дано так и юзаеца=))
Записан
Fat-Zer
Гость
Re: SIGSEVG(отладчик) Segmentation fault...
«
Ответ #3 :
Декабрь 15, 2010, 04:11 »
нету винды под рукой...
в любом случае подозрение, что ghmx - указатель и он не инициализируется
Записан
Aeromiss
Гость
Re: SIGSEVG(отладчик) Segmentation fault...
«
Ответ #4 :
Декабрь 15, 2010, 04:18 »
да, ты прав, я его спецом поставил .... без указателя пишет ошибку ему требуется HMIXEROBJ_* а не HMIXEROBJ_** .... ну а с ним хоть приложение запускалось но работало с ошибкой.... кароче ппц системный регулятор громкости фиг сделаеш=(( winapi ужасно странная вещь...
а ну и LPHMIXEROBJ ghmx; должно быть HMIXEROBJ ghmx; но qt не видит такого типа ... по typedef'у что в mmsystem.h брал LPHMIXEROBJ ghmx; что тоже весьма странно... вопрос остается тем же... что делать?=)
«
Последнее редактирование: Декабрь 15, 2010, 04:23 от Aeromiss
»
Записан
Fat-Zer
Гость
Re: SIGSEVG(отладчик) Segmentation fault...
«
Ответ #5 :
Декабрь 15, 2010, 04:30 »
Да... winapi без обёрток - страшная вещь, да и выглядит буд-то этот код вызывает сотону...
Записан
deaks
Гость
Re: SIGSEVG(отладчик) Segmentation fault...
«
Ответ #6 :
Декабрь 15, 2010, 10:52 »
какой-то хаос
Записан
Aeromiss
Гость
Re: SIGSEVG(отладчик) Segmentation fault...
«
Ответ #7 :
Декабрь 15, 2010, 12:17 »
есть конечно вариант, но он оч тяжелый .....
http://www.codeproject.com/KB/vista/CoreAudio.aspx
.... тут исходник dll и проги ... но там реально сотону вызывает.... хоть там хоть и VS но не разберешся...
Записан
SASA
Гость
Re: SIGSEVG(отладчик) Segmentation fault...
«
Ответ #8 :
Декабрь 15, 2010, 12:25 »
Цитата: deaks от Декабрь 15, 2010, 10:52
какой-то хаос
Старый, добрый WinAPI
Зато, когда люди видят твой код, думают, что ты крут. И вообще с другой планеты
«
Последнее редактирование: Декабрь 15, 2010, 12:27 от SASA
»
Записан
Aeromiss
Гость
Re: SIGSEVG(отладчик) Segmentation fault...
«
Ответ #9 :
Декабрь 15, 2010, 13:34 »
Спасибо=) Подбодрил...=) HMIXEROBJ - понимает delphi, а qt чето не очень=(
Ну все сделал тока указатели не надо ставить и тип Qt начал понимать.....
Но все равно создается канал приложения и только у него громкость убирает.... а нужно всех каналов.... Че делать?=)
«
Последнее редактирование: Декабрь 15, 2010, 14:23 от Aeromiss
»
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...