c - 如何在 Windows 上用 C 语言发出哔声?

标签 c windows audio

我正在尝试制作一个包含嘟嘟声的程序。我在 32 位 Windows Vista 上工作。我正在使用在 GNU 编译器上运行的 Code::Blocks IDE。我的示例代码是 -

#include <stdio.h>
#include <windows.h>
#include <dos.h>

int main(void)
{
    Beep(750, 300);
    printf("\n \n \t This is a dummy program for Beep.");
    getch();

    return 0;
}

在 Internet 上我读到我们也可以在 printf 中使用\a 来发出哔声。我试过了,但没有用。我检查了我的扬声器和声卡。一切都很完美,但我没有听到哔哔声。即使我在示例代码中显示的方法也不起作用。

最佳答案

C 标准 recommends'\a' 写入标准输出会产生可听或可见的警报信号,但如果重定向标准输出,它将不起作用。同样,一些较新的计算机缺少 Windows Beep() 和某些终端所依赖的 PC 蜂鸣器。要使 Windows PC 在桌面应用程序中播放警报声音,您可以调用 Windows 特定的 MessageBeep函数,它“异步”播放声音(在您的程序继续运行时在后台播放)。用户可以在声音控制面板中配置与这四个值中的每一个关联的声音。

#include <windows.h>

/* Include one of these in a function */
MessageBeep(MB_OK);              /* play Windows default beep */
MessageBeep(MB_ICONINFORMATION); /* play asterisk sound */
MessageBeep(MB_ICONQUESTION);    /* play question sound */
MessageBeep(MB_ICONWARNING);     /* play warning sound */

MessageBeep()User32.dll 中定义,因此如果这给您带来链接错误,请确保您链接到相应的导入库。在 MinGW GCC(Code::Blocks 中的编译器)中,将 -lUser32 添加到传递给链接器的库列表中。

关于c - 如何在 Windows 上用 C 语言发出哔声?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29493837/

相关文章:

检查 C 中的单元测试 : Best way to test static methods

windows - 安装包后找不到 Git Bash 命令

c# - 第一个完成后播放第二个SoundEffect

ios - 在 flutter 中找不到“audioplayers/AudioplayersPlugin.h”文件

python - 属性错误 : 'module' object has no attribute when trying to import c code into python

c - 使用 ESC 字符访问 GSM 03.38 扩展字符集

c++ - 用C中的文本文件的内容初始化一个数组

python - 当我使用requirements.txt时,pip没有从virtualenv中安装到site-packages目录

c++ - 如何使用 libcurl 从 github repo 下载 zip 文件?

audio - 将USB网络摄像头和USB扬声器组合到Windows中的单个虚拟音频设备中