C++ PlaySound(); возвращение неопределенной ссылки на PlaySoundW@12

Я пытался воспроизвести файл.M4A с помощью PlaySound(); в коде:: блоки (C++). Я просмотрел несколько сайтов и не нашел ничего, что действительно помогло бы мне. Я, вероятно, допустил ДЕЙСТВИТЕЛЬНО маленькую ошибку, но если кто-то может помочь, это было бы здорово.

#include <iostream>
#include <conio.h>
#include <windows.h>

using namespace std;

int main()
{
    PlaySound("wt.M4A", NULL, SND_ASYNC | SND_FILENAME);
    Beep(1000,1000);
    getch(); // wait
    return 0;
}

Я ожидаю, что код воспроизводит аудиоклип, затем воспроизводит звуковой сигнал, и я попытался удалить звуковой сигнал ();

вместо этого я получаю сообщение об ошибке:

Undefined reference to PlaySoundW@12

Спасибо!

1 ответ

Вы должны установить ссылку на winmm.lib / libwinmm.a, чтобы иметь функции PlaySoundA / PlaySoundW.

Также будьте осторожны с юникодом: вы вызываете PlaySoundW, но передаете строку ANSI. Обязательно вызовите PlaySoundA или используйте строки Unicode. Чтобы использовать строки Unicode, существует макрос TEXT, и вы должны указать опцию командной строки #define UNICODE или -DUNICODE.

Другие вопросы по тегам