undefined reference to PlaySoundPlaySound 定義於 winmm.dll,需連結 winmm.lib。
-lwinmm (GCC 命名慣例:libwinmm.a → -lwinmm)。-lwinmm。gcc main.c -o main.exe -lwinmm
winmm.lib。#pragma comment(lib, "winmm.lib")。#include <windows.h>
#include <mmsystem.h> // 需包含此頭檔
#pragma comment(lib, "winmm.lib") // MSVC 專用
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
PlaySound(TEXT("C:\\Music\\test.wav"), NULL, SND_FILENAME | SND_ASYNC);
MessageBox(NULL, TEXT("播放中..."), TEXT("提示"), MB_OK);
return 0;
}
SND_ASYNC 非阻塞,主程式結束會切斷播放,需 Sleep 或訊息迴圈保持進程存活。PlaySound 靜默失敗,可先用 GetFileAttributes 檢查。