, але це не все, а тепер саме головне (якщо це не зробити,
то буде помилка при лінкування): p>
1. Виберіть Project -> Settings ... -> C/C + + -> Code
Generation і поставте Multithreaded DLL p>
2. Виберіть Project -> Settings ... ->
Link -> General та поставте в полі Object/Library modules бібліотеку winmm.lib (це дуже важливо, перевірте!) P>
2. Відтворення Wave-файла у вигляді ресурсу h2>
Насамперед треба створити ресурс, для цього у файлі
mysound.rc2 треба вписати рядок IDSOUND_CORRECT sound rescorrect.wav, де
IDSOUND_CORRECT - індефікатор ресурсу, sound - тип ресурсу (назву можна
змінювати), rescorrect.wav - файл ресурсу. Після цього у файлі Resource.h треба
зареєструвати ресурс: # define IDSOUND_CORRECT 130. Число 130 не повинно
збігатися з іншими числами. p>
Як тільки ресурс зареєстрований можна написати в
фото mysoundDlg.cpp функції програвання цього ресурсу: p>
static void
PlayResource (LPCTSTR lpszSound) (HRSRC hRes;// resource handle to wave file
HGLOBAL hData; BOOL bOk = FALSE; if ((hRes =
:: FindResource (AfxGetResourceHandle (), lpszSound, _T ( "sound")))! =
NULL & & p>
(hData =:: LoadResource
(AfxGetResourceHandle (), hRes))! = NULL)
( P>
// found the
resource, play it bOk = sndPlaySound ((LPCTSTR):: LockResource (hData),
SND_MEMORY | SND_SYNC | SND_NODEFAULT); FreeResource (hData);) if (! BOk)
(AfxMessageBox ( "ERROR! Can not play the sound. P>
nNot find sound board !!!");)) inline static void PlayResource (UINT
nIDS) (
PlayResource (MAKEINTRESOURCE (nIDS));) p>
У Функція
:: FindResource (AfxGetResourceHandle (), lpszSound, _T ( "sound")) третій параметр - тип ресурсу, який був описаний вище. P>
Тепер можна програти ресурс: PlayResource (
IDSOUND_CORRECT); p>
3. Відтворення Wave-файлу з диска p>
Для програвання WAVE-файлу з диску можна використовувати
функцію: p>
BOOL
sndPlaySound (LPCTSTR
lpszSoundName; p>
UINT fuOptions;
); Параметри функції: p>
lpszSoundName
Назва файлу. Якщо цей параметр
NULL, p>
то програвання файлу зупиняється. fuOptions p>
Спеціальні опції для програвання музики. p>
Вони можуть бути наступними: p>
Значення Опис p>
SND_SYNC Музика грається синхронно, і функція p>
не возвращает покажчик поки не буде кінця файлу. p>
SND_ASYNC Музика грається асинхронно, і функція p>
повертає вказівник відразу після початку p>
програвання файлу. Щоб зупинити програвання, p>
треба викликати функцію SndPlaySound з параметром p>
lpszSoundName встановленим в NULL. p>
SND_NODEFAULT Якщо файл не знайдено, то функція p>
повертає вказівник одразу і не p>
програє стандартний звуковий ефект Windows. p>
SND_MEMORY Цей параметр потрібний для програвання p>
Wave-файла у вигляді ресурсу (з пам'яті). p>
SND_LOOP Цей параметр потрібний для програвання p>
Wave-файла в
циклічному режимі. Також p>
при цьому ви повинні
використовувати вологи SND_ASYNC. p>
Щоб
зупинити програвання, треба викликати p>
функцію
SndPlaySound з параметром p>
lpszSoundName встановленим в NULL. p>
SND_NOSTOP Якщо музика вже програється, p>
функція
возврвщает FALSE. p>
що повертається
значення: Якщо музика програється p>
правильно, то
функція возврвщает TRUE, інакше FALSE. p>
Приклад
використання: B p>
OOL bOk =
sndPlaySound ( "test.wav", SND_SYNC); p>
if (! bOk) (
AfxMessageBox p>
( "Error! Can not play the sound.
!!!");) P>
Список літератури h2>
Для підготовки даної роботи були використані
матеріали з сайту http://www.realcoding.net/
p>