私は次のコードを持っています:
#include <windows.h>
#include <stdio.h>
int main(void)
{
Beep(523, 500);
Sleep(1000);
return 0;
}
MinGWとDev-C++を使用してコンパイルしています。私の問題は、エラーは発生しませんが、何も聞こえないことです。私はWindows7を持っています。何かアイデアはありますか?
スピーカーをオンにします。すでにオンになっている場合は、音量を上げてください。コンピューターにスピーカーとサウンド カードがインストールされていない場合は、いくつかを入手してインストールし、プログラムをもう一度実行してみてください。
Windows 7のBeep
機能から何かを聞くには、これらすべてが必要です。組み込みのハードウェア システム スピーカーからサウンドが再生されなくなります。代わりに、サウンドはユーザー セッションの既定のサウンド デバイスに渡されます。標準のローカル ユーザー セッションでは、それがサウンド カードになります。ドキュメントでは、「備考」セクションでこの重要な詳細について説明しています。
はるか昔、すべての PC コンピュータは、プリミティブ サウンドを生成するために、共通の 8254 プログラム可能なインターバル タイマー チップを共有していました。この
Beep
関数は、そのハードウェアでビープ音を発するように特別に作成されました。これらの古いシステムでは、ミュートとボリューム コントロールは に影響しません
Beep
。あなたはまだトーンを聞くでしょう。トーンを無音にするために、次のコマンドを使用しました。net stop beep sc config beep start= disabled
それ以来、サウンド カードはほとんどすべての PC コンピュータに標準装備されています。サウンド カードがより一般的になるにつれて、メーカーは古いタイマー チップをコンピューターから削除し始めました。チップは、サーバー コンピューターの設計からも除外されました。その結果
Beep
、チップを搭載していないすべてのコンピューターでは機能しませんでした。ほとんどの開発者は、8254 チップの代わりにデフォルトのサウンド デバイスを使用するMessageBeep
関数を呼び出すようになったので、これは問題ありませんでした。最終的に通信するハードウェアが不足したため
Beep
、Windows Vista および Windows XP 64-Bit Edition では のサポートが中止されました。Windows 7 では、Beep が書き直され、ビープ音がセッションの既定のサウンド デバイスに渡されるようになりました。通常、これはサウンド カードです。ただし、ターミナル サービスで実行されている場合を除きます。この場合、ビープ音はクライアントでレンダリングされます。