PlaySound适用于Visual Studio,但不适用于独立的exe

时间:2016-04-05 11:08:01

标签: c++ visual-studio winapi playsound

我正在尝试使用Visual Studio在C ++中播放wav文件。 我把文件" my.wav"在我的项目目录中并使用代码

PlaySound(TEXT("my.wav"), NULL, SND_FILENAME | SND_SYNC);

我点击了播放按钮(或F5甚至Ctrl-F5),播放的声音很好。

我打开命令提示符并转到Debug /并运行MyApp.exe,当它运行时,它会播放错误提示。

注意:理想情况下声音将捆绑在exe中,因此我可以只分发exe并且它可以工作。我尝试将它放在Resource.rc中,但我在所有示例中看到的代码

PlaySound( (char*)IDR_WAVE1, NULL, SND_RESOURCE | SND_SYNC );

甚至不为我编译。抱怨IDR_WAVE1,即使这是我资源的名称。

2 个答案:

答案 0 :(得分:0)

我记得你需要链接'资源文件" .rc文件"在Visual Studio中将其嵌入.exe文件中。否则你需要像@wilx指出的那样加载它。

答案 1 :(得分:0)

我在旧学校的win32上有点生疏,但它是这样的:

在您的文件中包含resource.h并使用MAKEINTRESOURCE

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