PlaySound работает в Visual Studio, но не в автономном

Я пытаюсь воспроизвести файл 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, хотя это имя моего ресурса.

2 ответа

Решение

Я немного заржавел на старой школе win32, но это было примерно так:

включите resource.h в ваш файл и используйте MAKEINTRESOURCE

PlaySound(MAKEINTRESOURCE(IDR_WAVE1), NULL, SND_RESOURCE | SND_SYNC );

Насколько я помню, вам нужно "связать" файл ресурсов с файлом сценария ресурса ".rc file" в Visual Studio, чтобы встроить его в файл.exe. В противном случае вам нужно загрузить его, как указывает @wilx.

Другие вопросы по тегам