Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.75
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,921
Записей в блоге: 1
#1

Как задать звук в консоли - C++

05.10.2011, 09:33. Просмотров 4765. Ответов 11
Метки нет (Все метки)

Не как не могу найти функцию которая воспроизводить стандартный звук из колонок
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт CЭксперт С++
9468 / 5481 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
05.10.2011, 10:28     Как задать звук в консоли #2
C
1
printf("\a");
-=ЮрА=-
Заблокирован
Автор FAQ
05.10.2011, 14:13     Как задать звук в консоли #3
Цитата Сообщение от Sylar9 Посмотреть сообщение
Не как не могу найти функцию которая воспроизводить стандартный звук из колонок
- решил привести пример игры системным динамиком Beep, звука от системы MessageBeep (тут уже внешние динамики нужны) а также проигрывания медиа-файла который выбираем на жестком
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <windows.h>
#include <shlobj.h>  //Диалог выбора файла
#include <mmsystem.h>//sndPlaySound
#include <stdio.h>
#include <conio.h>   //getch
 
#pragma comment(lib,"winmm.lib")//sndPlaySound
 
char * SelFile(HWND hWnd);
 
 
int main()
{
    printf("Beep - direct system dynamic play\r\n");
    const DWORD note[] = {
            0x11, 0x22, 0xF2, 0x2F, 0xAA, 0xBB, 0xCC, 0xEE, 0x29, 0x19, 0xFF
     };
    //Возможности Beep
    for(int i = 0; i < sizeof(note) / sizeof(DWORD); i++)
         Beep(note[i], 500U);
    char szFilePath[256];
    HWND hWnd = GetForegroundWindow();//Находим дескриптор окна консоли
    do
    {
        if(!strcpy(szFilePath,SelFile(hWnd)))
            printf("File not selected\r\n");
        else
        {
            //Возможности MessageBeep
            //Можно использоовать также
            //MB_ICONHAND
            //MB_ICONQUESTION
            //MB_ICONEXCLAMATION
            //MB_ICONASTERISK
            printf("MessageBeep - system exclamation\r\n");
            system("pause");
            MessageBeep(MB_ICONEXCLAMATION);
            
            printf("sndPlaySound - playing file on hard disk\r\n");
            system("pause");
            sndPlaySound(szFilePath,SND_ASYNC);
        }
        printf("Press Y for new selection\r\n");
    }
    while(toupper(getch()) == 'Y');
    system("pause");
    return 0;
}
 
char * SelFile(HWND hWnd)
{
    ShowWindow(hWnd,SW_HIDE);
    char sPath[MAX_PATH];sPath[0] = '\0';
    LPCITEMIDLIST lpItemDList;
    BROWSEINFO bi = {NULL, NULL, sPath,
       "Выберите медиа файл",
        BIF_DONTGOBELOWDOMAIN|BIF_BROWSEINCLUDEFILES,
        NULL,
        NULL,
        0
    };
    if((lpItemDList = SHBrowseForFolder(&bi)))
    {
        if(SHGetPathFromIDList(lpItemDList, sPath))
            GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
    }
    ShowWindow(hWnd,SW_SHOW);
    return &sPath[0];
}
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,921
Записей в блоге: 1
05.10.2011, 14:56  [ТС]     Как задать звук в консоли #4
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- решил привести пример игры системным динамиком Beep, звука от системы MessageBeep (тут уже внешние динамики нужны) а также проигрывания медиа-файла который выбираем на жестком
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <windows.h>
#include <shlobj.h>  //Диалог выбора файла
#include <mmsystem.h>//sndPlaySound
#include <stdio.h>
#include <conio.h>   //getch
 
#pragma comment(lib,"winmm.lib")//sndPlaySound
 
char * SelFile(HWND hWnd);
 
 
int main()
{
    printf("Beep - direct system dynamic play\r\n");
    const DWORD note[] = {
            0x11, 0x22, 0xF2, 0x2F, 0xAA, 0xBB, 0xCC, 0xEE, 0x29, 0x19, 0xFF
     };
    //Возможности Beep
    for(int i = 0; i < sizeof(note) / sizeof(DWORD); i++)
         Beep(note[i], 500U);
    char szFilePath[256];
    HWND hWnd = GetForegroundWindow();//Находим дескриптор окна консоли
    do
    {
        if(!strcpy(szFilePath,SelFile(hWnd)))
            printf("File not selected\r\n");
        else
        {
            //Возможности MessageBeep
            //Можно использоовать также
            //MB_ICONHAND
            //MB_ICONQUESTION
            //MB_ICONEXCLAMATION
            //MB_ICONASTERISK
            printf("MessageBeep - system exclamation\r\n");
            system("pause");
            MessageBeep(MB_ICONEXCLAMATION);
            
            printf("sndPlaySound - playing file on hard disk\r\n");
            system("pause");
            sndPlaySound(szFilePath,SND_ASYNC);
        }
        printf("Press Y for new selection\r\n");
    }
    while(toupper(getch()) == 'Y');
    system("pause");
    return 0;
}
 
char * SelFile(HWND hWnd)
{
    ShowWindow(hWnd,SW_HIDE);
    char sPath[MAX_PATH];sPath[0] = '\0';
    LPCITEMIDLIST lpItemDList;
    BROWSEINFO bi = {NULL, NULL, sPath,
       "Выберите медиа файл",
        BIF_DONTGOBELOWDOMAIN|BIF_BROWSEINCLUDEFILES,
        NULL,
        NULL,
        0
    };
    if((lpItemDList = SHBrowseForFolder(&bi)))
    {
        if(SHGetPathFromIDList(lpItemDList, sPath))
            GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
    }
    ShowWindow(hWnd,SW_SHOW);
    return &sPath[0];
}
У меня ошибку выбвает при компиляции вот ошибка fatal error C1010: unexpected end of file while looking for precompiled header directive
-=ЮрА=-
Заблокирован
Автор FAQ
05.10.2011, 15:21     Как задать звук в консоли #5
Цитата Сообщение от Sylar9 Посмотреть сообщение
У меня ошибку выбвает при компиляции вот ошибка fatal error C1010: unexpected end of file while looking for precompiled header directive
- проект 100% компилируется и работает тоже, значит дело в компиляторе - в чём пишем???
Log Debug
Deleting intermediate files and output files for project 'snd - Win32 Debug'.
--------------------Configuration: snd - Win32 Debug--------------------
Compiling...
snd.cpp
Linking...
Creating browse info file...

snd.exe - 0 error(s), 0 warning(s)
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,921
Записей в блоге: 1
06.10.2011, 08:33  [ТС]     Как задать звук в консоли #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- проект 100% компилируется и работает тоже, значит дело в компиляторе - в чём пишем???
Log Debug
Deleting intermediate files and output files for project 'snd - Win32 Debug'.
--------------------Configuration: snd - Win32 Debug--------------------
Compiling...
snd.cpp
Linking...
Creating browse info file...

snd.exe - 0 error(s), 0 warning(s)
В майкрософт визал 6,0 с++
-=ЮрА=-
Заблокирован
Автор FAQ
06.10.2011, 09:31     Как задать звук в консоли #7
Цитата Сообщение от Sylar9 Посмотреть сообщение
В майкрософт визал 6,0 с++
, это проект написан именно в 6-ке, единственным моим предположением является отсутствие в вашей инсталляции каких либо библиортек, как вариант давайте попробуем вычленить ошибку, предлагаю последовательно провести компиляцию частей программы, на каком то этапе у вас появиться ваш зловещий fatal error C1010 - я конечно грешу что при копипасти кода вы скобочку потеряли(ну не докопировали - ошибка на данный вариант похожа), тем не менее запишите код так
Beep
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
#include <stdio.h>
 
int main()
{
    printf("Beep - direct system dynamic play\r\n");
    const DWORD note[] = {
            0x11, 0x22, 0xF2, 0x2F, 0xAA, 0xBB, 0xCC, 0xEE, 0x29, 0x19, 0xFF
     };
    //Возможности Beep
    for(int i = 0; i < sizeof(note) / sizeof(DWORD); i++)
         Beep(note[i], 500U);
    system("pause");
    return 0;
}

Log Debug, всё работает
Deleting intermediate files and output files for project 'snd2 - Win32 Debug'.
--------------------Configuration: snd2 - Win32 Debug--------------------
Compiling...
snd2.cpp
Linking...

snd2.exe - 0 error(s), 0 warning(s)


Добавлено через 2 минуты
Затем проверим MessageBeep
только MessageBeep
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <windows.h>
#include <stdio.h>
 
int main()
{
    //Возможности MessageBeep
            //Можно использоовать также
            //MB_ICONHAND
            //MB_ICONQUESTION
            //MB_ICONEXCLAMATION
            //MB_ICONASTERISK
            printf("MessageBeep - system exclamation\r\n");
    system("pause");
    MessageBeep(MB_ICONEXCLAMATION);
    system("pause");
    return 0;
}

Лог Debug тотже
Ну и затем когда вы всё скомпилируете, я введу в проект диалог выбора файла и проигрывание медиа файлов на жёстком
Digit@ll
Brainsbreaker
881 / 359 / 30
Регистрация: 01.02.2011
Сообщений: 1,572
06.10.2011, 10:37     Как задать звук в консоли #8
Ох... #include "stdafx.h"
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,921
Записей в блоге: 1
07.10.2011, 16:59  [ТС]     Как задать звук в консоли #9
Цитата Сообщение от Sylar9 Посмотреть сообщение
У меня ошибку выбвает при компиляции вот ошибка fatal error C1010: unexpected end of file while looking for precompiled header directive
У меня он скомпилировалося а что она ваше должна делать???
-=ЮрА=-
07.10.2011, 17:02
  #10

Не по теме:

Цитата Сообщение от Sylar9 Посмотреть сообщение
У меня он скомпилировалося а что она ваше должна делать???
- на выполнение запустите и вслушайтесь в звуки из динамиков и спикера системника

Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,921
Записей в блоге: 1
07.10.2011, 17:05  [ТС]     Как задать звук в консоли #11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

- на выполнение запустите и вслушайтесь в звуки из динамиков и спикера системника

Ну да мелодия играет. а потом она предлогает выбрать файл. Я выбираю но нечего не происходит???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2011, 18:10     Как задать звук в консоли
Еще ссылки по теме:
Как считать строку с консоли? C++
C++ Как устранить мерцание в консоли?
C++ Как в консоли проиграть музыку
Как очистить окно консоли? C++
Как создать переменную из консоли C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
07.10.2011, 18:10     Как задать звук в консоли
  #12

Не по теме:

Цитата Сообщение от Sylar9 Посмотреть сообщение
Ну да мелодия играет.
- это же как раз по заданию, что ещё надобно
Цитата Сообщение от Sylar9 Посмотреть сообщение
Я выбираю но нечего не происходит???
а с этим как и обещал выше попробую разобраться т.к подозреваю
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
единственным моим предположением является отсутствие в вашей инсталляции каких либо библиортек

Yandex
Объявления
07.10.2011, 18:10     Как задать звук в консоли
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru