Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проигрывание Wave-файлов

4.3K
17 июля 2006 года
valeriy15
84 / / 03.04.2006
Вот столкнулся с такой проблемой - написал код проигрывания wave-файла из ресурса:

[SIZE=1][SIZE=2][COLOR=#0000ff][SIZE=1]static[/SIZE][/COLOR][/SIZE] [COLOR=#0000ff]void[/COLOR] PlayResource(LPCTSTR lpszSound)

{[INDENT]HRSRC hRes; [COLOR=#008000]// resource handle to wave file[/COLOR]
HGLOBAL hData;
BOOL bOk = FALSE;
[COLOR=#0000ff]if[/COLOR]((hRes=::FindResource(AfxGetResourceHandle(),lpszSound,_T([COLOR=#800000]"sound"[/COLOR])))!=NULL&&(hData=::LoadResource(AfxGetResourceHandle(),hRes))!=NULL)

{[INDENT][COLOR=#008000]// found the resource, play it[/COLOR]
bOk = sndPlaySound((LPCTSTR)::LockResource(hData),SND_MEMORY|SND_SYNC|SND_NODEFAULT);
FreeResource(hData);

[/INDENT]}
[COLOR=#0000ff]if[/COLOR](!bOk)

{[INDENT]AfxMessageBox([COLOR=#800000]"ERROR !!! Can not play the sound."[/COLOR]);

[/INDENT]}

[/INDENT]}

[COLOR=#0000ff]inline[/COLOR] [COLOR=#0000ff]static[/COLOR] [COLOR=#0000ff]void[/COLOR][SIZE=2][SIZE=1] PlayResource(UINT nIDS)[/SIZE]

[SIZE=1]{ [/SIZE][INDENT][SIZE=1]PlayResource(MAKEINTRESOURCE(nIDS)); [/SIZE]

[/INDENT][SIZE=1]}[/SIZE]

[/SIZE][/SIZE]
Ну и чтобы при нажатии на кнопку этот файл воспроизводился:
[SIZE=2][SIZE=1]PlayResource(IDR_CLICK_WAVE);[/SIZE]

[COLOR=red]Но при компилляции выдается ошибка:[/COLOR]
[SIZE=1]activationdlg.obj : error LNK2019: unresolved external symbol __imp__sndPlaySoundA@8 referenced in function "void __cdecl PlayResource(char const *)" (?PlayResource@@YAXPBD@Z)

[CENTER][SIZE=2]Кто может объяснить в чем проблема и как ее устранить, подскажите пожалуйста.[/SIZE] :) [/CENTER]
[/SIZE][/SIZE]
240
17 июля 2006 года
aks
2.5K / / 14.07.2006
Ну из ошибки видно, что линковщик не видет реализацию sndPlaySound, которая видимо находиться в какой то библиотеке. MSDN говорит, что библиотека эта Coredll.lib
Просто подключи ее в проект.
4.3K
17 июля 2006 года
valeriy15
84 / / 03.04.2006
А случайно не должна ли использоваться winmm.lib?
И потом, каким образом она подключается - через [COLOR=blue]#include[/COLOR][COLOR=black]? :confused: [/COLOR]
240
17 июля 2006 года
aks
2.5K / / 14.07.2006
[QUOTE=valeriy15]А случайно не должна ли использоваться winmm.lib?
И потом, каким образом она подключается - через [COLOR=blue]#include[/COLOR][COLOR=black]? :confused: [/COLOR][/QUOTE]
Да Winmm.lib конечно =))
Добавить можно или в свойствах проекта через меню: Project->properties->Linker->Input->Additional Dependencies
Или в коде #pragma comment(lib, "Winmm.lib")
4.3K
17 июля 2006 года
valeriy15
84 / / 03.04.2006
Все получилось - великолепно! Благодарю за помощь! :rolleyes:
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог