2017-09-04 8 views
-4

コード:私のC++コードが動作しないのはなぜですか?

#include<iostream> 
#include<windows.h> 
#include"MMSystem.h" 
using namespace std; 
int main() 
{ 
    PlaySound(TEXT("Soma.wav"), NULL, SND_FILENAME); 
    return 0; 
} 

コード機能し、エラーの警告を与えるものではありませんが、それはまだ音楽を再生しません。私はVisual Studioを使用していて、WinMM.libをリンカーに含めています。また、プリコンパイル済みヘッダーが無効になっています。どんなフィードバックがあっても大変感謝しています。

+4

「PlaySound」の戻りコードは何ですか? – user4581301

+2

[質問]から:*「タイトルは最初に回答者に表示されます。タイトルが面白くない場合は、残りの部分は読み込まれません。 – IInspectable

答えて

1

PlaySound機能は、次のいずれかの場所で「Soma.wav」ファイルを見つけることができないとして、サウンドを再生しませんあなたのコード:

...現在のディレクトリを、 Windowsディレクトリ。 Windowsシステム ディレクトリ。 PATH環境変数にリストされているディレクトリ。 ネットワークにマップされたディレクトリのリスト。

チャンスはあなたがデフォルトのシステムイベントが音が聞こえているとあなたの関数は、Falseをを返します。解決策が言及したのいずれかの場所に.wavファイルを置くか、またはファイルへのフルパスを指定することです:あなたはIDEからアプリケーションを実行している場合

PlaySound(TEXT("C:\\Your Folder\\Soma.wav"), NULL, SND_FILENAME); 

、あなたのソースコードがあるwavファイルを置きます。デプロイする場合は、exeファイルと同じフォルダにファイルを置きます。

+0

問題は、プログラムがすぐに終了するということです。 –

+1

@DavidHeffernan: 'SND_ASYNC'を指定しない限り、' PlaySound'は同期呼び出しです(コードにはありません)。システムがオーディオファイルを見つけることができると仮定して、サウンドが再生される前にプログラムは終了しません。 – IInspectable

関連する問題