【问题标题】:How to use PlaySound in C如何在 C 中使用 PlaySound
【发布时间】:2015-07-11 23:32:28
【问题描述】:

我正在使用在 GNU GCC 编译器上运行的 code::blocks IDE。在我的项目中,我想在 C 中播放 .wav 声音文件。我尝试使用名为 PlaySound 的函数播放 .wav 声音文件.当我编译代码时,code::blocks 给了我一个错误 - PlaySoundA 未声明。我的代码是-

#include <stdio.h>
#include <windows.h>
#include <windowsx.h>
#include <mmsystem.h>

int main(int argc, char *argv[])
{
  PlaySound("C:\Snakes and Ladders\snake.wav",NULL,SND_SYNC | SND_LOOP | SND_FILENAME);
  return 0;
}

我检查了我的路径两次。我在互联网上阅读了有关此功能的信息,据我所知,我以正确的方式使用它。

在 Google 中,我读到该函数存在于一个名为 winmm.lib 的文件中。所以我在所有标题之后放了一行代码。原来是-

 #pragma comment (lib , "winmm.lib")

我还将名称 winmm.lib 添加到 code::blocks 的附加依赖项中。所以现在当我编译代码时,它给了我另一个错误 - winmm.lib not found。谁能告诉我如何正确使用 PlaySound。

【问题讨论】:

  • 将路径中的 \ 替换为 \\。喜欢C:\\Snakes and Ladders\\snake.wav
  • 如果我放 Mmsystem.hcode::blocks 会给我错误,这就是我放 mmsystem.h 的原因。
  • 我使用的是 Visual Studio 2008,在这方面工作正常。
  • 你正在使用 gcc,不要将它与 msvc 之类的杂注混合。见stackoverflow.com/questions/21837556/…
  • Himanshu,您使用的是 Visual Studio 2008,而不是 code::blocks。如果您想亲自查看,请下载 code::blocks 并尝试放入 Mmsystem.h。它不会起作用。

标签: c audio codeblocks wav winmm


【解决方案1】:
  1. 删除杂注注释
  2. 双反斜杠。反斜杠是转义字符
  3. 使用 winmm 库编译。使用 MinGW,命令如下所示:

    gcc foo.c -o foo.exe -lwinmm

【讨论】:

    【解决方案2】:

    转到设置 - 编译器... - 链接器设置。在其他链接器选项的右侧写下:-lwinmm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多