2013-03-13 140 views
2

我正在使用visual studio 2010 express,我试图编写一个简单的程序,将重复一个波形文件5次(我正在运行Windows XP SP1)。播放.wav文件

这是据我得到:

#include "stdafx.h" 
#include <windows.h> 
#include <iostream> 

using namespace std; 
int main() 
{ 
    int a = 5; 
     while(a >= 1){ 
      cout << "It's a f**king country"; 
      PlaySound(L"F**kingCountry-01.wav", NULL, SND_FILENAME); 
      --a; 
     } 
    return 0; 
} 

问题是我不断收到的时候我建立这此错误消息:

 
1>------ Build started: Project: It's a F**king Country, Configuration: Release Win32 -- ---- 
1> It's a F**king Country.cpp 
1>..\..\..\..\..\Shaul's documents\Visual Studio 2010\Projects\It's a F**king   Country\Release\F**kingCountry-01.wav : fatal error LNK1136: invalid or corrupt file 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

该文件是完全正常的,并播放在视觉工作室之外没有任何问题。

帮助将得到真正的赞赏。

+2

根据MSDN,你应该使用'PlaySound(TEXT(“filePath.wav”),NULL,SND_FILENAME);'。 您可以在[这里](http://msdn.microsoft.com/en-us/library/windows/desktop/dd743680(v = vs.85).aspx)阅读更多内容。 – guanabara 2013-03-13 11:44:10

+0

尝试清理解决方案并重建它。 – user1929959 2013-03-13 11:46:28

+1

我很惊讶'这是一个F **王国'是Windows上的有效文件名。 – tenfour 2015-03-15 11:59:55

回答

4

,而不是添加WAV文件到项目的文件,将其添加到资源,并使用SND_RESOURCE代替SND_FILENAME

2

您将声音文件包含为目标文件,因此编译器会尝试链接它。但是这是一个不可链接的二进制文件(这是错误消息所说的)。

不要在项目中包含声音文件,因此环境将不会与其链接。

P.S.今后,请不要在这样的公共网站上使用“坏”字。

0

为了摆脱链接错误,你需要告诉IDE库还与WINMM.LIB链接,所以开项目/属性/配置属性/链接器/输入和追加WINMM.LIB附加依存关系字段。

此外,使用下面的函数曲线:

PlaySound(L “audio.wav”,NULL,SND_APPLICATION);