Hi! Будьте добры пример, как можно воспроизвести звуковой файл по наступлению определенного события, например по нажатию кнопки(Visual С++). With best regards. alexneta.
Доброе время суток, alexneta! Посмотри функцию PlaySound и ей подобные. Ответ отправлен: 27.12.2003, 15:22 Отправитель: chebv
Вопрос № 1356
Здравствуйте, уважаемые эксперты! Поздравляю вас с наступающим Новым Годом. Большое спасибо за вашу помощь. Надеюсь на ваш совет, т.к. не могу сама разобраться в одной маленькой программке. Хотя это вопрос не по Си, но надеюсь, вы мне поможете. Ниже приведен алгоритм «атомарной» функции, которая меняет местами верхние значения в двух стеках. Если один из стеков пуст, то второй не должен изменяться. В функцию никогда не передаются указатели на один и тот же стек. Void AtomicSwap(Stack *s1, Stack *s2) { Int v1, v2, rez; s1->lock.Acquire(); rez=s1->Pop(&v1); if (rez==OK) { s2->lock.Acquire(); rez=s2->Pop(&v2); if (rez==OK) { s2->Push(v1); s1->Push(v2); s2->lock.Release(); s1->lock.Release(); } } } Укажите
на ошибки в этом решении и исправьте их, если они есть. Извините за беспокойство и большое спасибо
Добрый день, Ольга! Освобождение блокировок стеков необходимо вынести на соответствующие уровни. Затем: поведение функции в случае ошибки?. По-провилам, хорошего тона, если в ходе выполнения функци были детектированы ошибки, то следует известить об этом вызывающую сторону, т.е. я бы написал эту функцию приблизительно так: int AtomicSwap(Stack *s1, Stack *s2) { int rez, v1, v2; s1->lock.Acquire(); rez = s1->Pop(&v1); if (rez!=OK) { // обработка ошибки } else { s2->lock.Acquire(); rez = s2->Pop(&v2); if (rez!=OK) { // обработка ошибки } else { s2->Push(v1); s1->Push(v2); } // убрать блокировку второго стека s2->lock.Release(); } // убрать блокировку первого стека s1->lock.Release(); // вернуть статус завершения функции return rez; }
Ответ отправлен: 27.12.2003, 20:29 Отправитель: RedFox
Вопрос № 1357
Скажите пожалуйста где есть Yacc and Lex под WIndows or DOS (для создания кода на Си), или аналочиные им? Спасибо,
Доброе время суток, Sasha! Например см. здесь, а вообще их портировали достаточно много. С уважением, Avl2k. Ответ отправлен: 29.12.2003, 15:50 Отправитель: Avl2k
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.