3

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> ------ビルド開始:プロジェクト:F ** king国、構成:リリースWin32 ------
1> mycode.cpp
1> .. \ .. \ .. \ .. \ .. \ Shaul's document \ Visual Studio 2010 \ Projects \ MyProject \ Release \ SomeAudioFile-01.wav:致命的なエラーLNK1136:ファイルが無効または破損しています
==========ビルド:0成功、1失敗、0最新、0スキップ==========

ファイルは完全に問題なく、VisualStudioの外部でも問題なく再生されます。

助けていただければ幸いです。

4

3 に答える 3

5

WAVファイルをプロジェクト ファイルに追加する代わりに、リソースに追加し、代わりSND_RESOURCESND_FILENAME.

于 2013-03-13T11:47:49.623 に答える
4

サウンドファイルをオブジェクトファイルとしてインクルードするため、コンパイラはサウンドファイルとのリンクを試みます。しかし、それはリンクできないバイナリファイルです(これはエラーメッセージが言っていることです)。

プロジェクトにサウンドファイルを含めないでください。環境がサウンドファイルにリンクしなくなります。

PS今後、このような公開サイトで「悪い」言葉を使用することはご遠慮ください。

于 2013-03-13T11:46:03.483 に答える
0

リンカー エラーを取り除くには、IDE にwinmm.libライブラリともリンクするように指示する必要があるため、[プロジェクト]、[プロパティ]、[構成プロパティ]、[リンカー]、[入力] を開き、[追加の依存関係] フィールドにwinmm.libを追加します。

また、次の機能プロファイルを使用します。

PlaySound(L"audio.wav", NULL, SND_APPLICATION);

于 2013-10-03T21:30:14.997 に答える