Я пытаюсь воспроизвести файл WAV в C ++ с помощью Visual Studio.
Я помещаю файл «my.wav» в каталог моего проекта и использую код
PlaySound(TEXT("my.wav"), NULL, SND_FILENAME | SND_SYNC);
Я нажимаю кнопку воспроизведения (или F5 или даже Ctrl-F5), и он воспроизводит звук отлично.
Я открываю командную строку и захожу в Debug / и запускаю MyApp.exe, и при запуске проигрывает сообщение об ошибке.
Примечание: в идеале звук должен быть включен в исполняемый файл, поэтому я могу просто распространять исполняемый файл, и он будет работать. Я пытался поместить его в Resource.rc, но код, который я вижу во всех примерах
PlaySound( (char*)IDR_WAVE1, NULL, SND_RESOURCE | SND_SYNC );
даже не компилируется для меня. Жалуется на IDR_WAVE1, хотя это имя моего ресурса.
Я немного заржавел на старой школе win32, но это было примерно так:
включите resource.h в ваш файл и используйте MAKEINTRESOURCE
PlaySound(MAKEINTRESOURCE(IDR_WAVE1), NULL, SND_RESOURCE | SND_SYNC );
Насколько я помню, вам нужно «связать» файл ресурсов с файлом сценария ресурса «.rc file» в Visual Studio, чтобы встроить его в файл .exe. В противном случае вам нужно загрузить его, как указывает @wilx.