2013-03-13 198 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);