我正在使用visual studio 2010 express,我正在尝试编写一个简单的程序,该程序将重复一次wave文件5次(我正在运行windows xp sp3)。
据我所知:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;
int main ()
{
int a = 5;
while(a >= 1){
cout << "It's a wav file";
PlaySound(L"SomeAudioFile-01.wav", NULL, SND_FILENAME);
--a;
}
return 0;
}
问题是我在构建它时不断收到此错误消息:
1>------ Build started: Project: It's a F**king Country, Configuration: Release Win32 -- ---- 1> mycode.cpp 1>..\..\..\..\..\Shaul's documents\Visual Studio 2010\Projects\MyProject\Release\SomeAudioFile-01.wav : fatal error LNK1136: invalid or corrupt file ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
该文件非常精美,在视觉工作室之外无任何问题。
真的很感激帮助。
答案 0 :(得分:4)
不是将WAV
文件添加到项目文件中,而是将其添加到资源中,然后使用SND_RESOURCE
而不是SND_FILENAME
。
答案 1 :(得分:2)
将声音文件包含为目标文件,因此编译器会尝试与之链接。但它是一个不可链接的二进制文件(这是错误信息所说的)。
不要在项目中包含声音文件,因此环境不会与之链接。
P.S。在将来,请不要在这样的公共网站上使用“坏”字。
答案 2 :(得分:0)
要消除链接器错误,您需要告诉IDE还要链接 winmm.lib 库,因此打开项目/属性/配置属性/链接器/输入< / em>并在附加依赖项字段中附加 winmm.lib 。
另外,请使用以下功能配置文件:
PlaySound(L“audio.wav”,NULL,SND_APPLICATION);