You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Winmm.h库时出现构建编译错误的技术求助

问题描述

用C语言写了一个播放WAV音频的程序,代码如下:

#include <stdio.h>
#include <Windows.h>
#include "winmm.h"

int main()
{
    printf("Hello World!
");
    PlaySound(TEXT("music002.wav"), NULL, SND_FILENAME);
    system("pause");
}

做了这些配置:

  • 下载了winmm.h和winmm.dll,把头文件加到项目的“Header Files”里
  • 在项目属性的Linker->General->Additional Library Directories里加了winmm.dll的路径
  • 已经包含#include <Windows.h>

代码里没标红报错,但Visual Studio编译时弹出“There were build errors.”,没法继续,怀疑是库配置错了,求解决。

解决步骤

1. 删掉自己下载的winmm文件,用系统自带的

Windows本身就带winmm.h和winmm.lib(注意是.lib不是.dll),根本不用手动下载。自己加的文件反而可能和系统库冲突,直接:

  • 从项目里移除手动加的winmm.h
  • 把Additional Library Directories里的winmm.dll路径删掉

2. 配置链接器要链接的库

编译时需要关联winmm.lib,两种办法选一个就行:

办法一:改项目属性

右键项目 → 属性 → 配置属性 → 链接器 → 输入 → 附加依赖项,在里面添加winmm.lib,点确定。

办法二:在代码里加一行指令

在代码开头(include之后)加:

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

这样不用改项目设置,编译器会自动找这个库链接。

3. 修复代码里的小错误

printf("Hello World! ");这里字符串换行没加转义符,改成:

printf("Hello World!\n");

不然这行本身就会导致编译错误。

4. 确认音频文件路径对不对

  • 如果music002.wav放在项目的Debug或Release输出文件夹里,直接用文件名就行
  • 如果在别的地方,得写完整路径,比如TEXT("C:\\audio\\music002.wav")(Windows路径要用双反斜杠)

内容的提问来源于stack exchange,提问作者Drake Vimes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:32:32