Шаг 89 - Немного звука

В Windows уже заложена возможность работы со звуком и многими другими прелестями, к которым мы привыкли и которые немного ранее назывались мультимедиа. Многие из этих функций, в том числе и работа со звуком, состредоточены в Mmsystem.dll. Эта DLL находится в каталоге Windows\System\. Это обычное API. И естественно оно поддерживается в VC++. Описания этих функций находятся в заголовочном файле mmsystem.h.

Давайте создадим приложение как Win 32 Console и назовем его TestSound. Тип его возьмем как "Hello Word".

Мы не можем сразу подключить mmsystem.h, потому что для его работы необходим Windows.h, вот так должны быть объявлены заголовочные файлы.

#include "stdafx.h"
#include "windows.h"
#include "mmsystem.h"

Легче всего вывести на динамики WAV файл, для этого есть функция sndPlaySound.

BOOL sndPlaySound( 
 LPCSTR lpszSound,    	// путь и имя WAV файла
 UINT fuSound      	// параметры проигрования
 );

Вот теперь мы все знаем, чтобы написать код. Проще всего найти звуки в каталоге Windows\Media. Ну давайте писать код.

#include "stdafx.h"
#include "windows.h"
#include "mmsystem.h"

int main(int argc, char* argv[])
{

	int inResult;
	inResult=sndPlaySound("c:\\windows\\media\\Chimes.wav",SND_SYNC);
	if (inResult==FALSE) 	printf("Error sound\n");
	else printf("God sound \n");
	return 0;
}

Код мы написали, только вот собрать не сможем. Примерно такие ошибки должны быть..

TestSound.obj : error LNK2001: unresolved external symbol __imp__sndPlaySoundA@8
Debug/TestSound.exe : fatal error LNK1120: 1 unresolved externals

Конечно нужен LIB файл. Вы знаете как я выхожу из подобных ситуаций ? Вдруг пригодится. Сморите на картинке всё понятно :-)

step89.gif (7684 b)

Всё, что осталось сделать это включить этот LIB в Project -> Setting - > Link -> Object/Library module. И все можно запускать.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.