РЕДАКТИРОВАТЬ: Решено. Просто .wav файл не был принят Windows. Я взял один из собственных файлов Windows и переименовал его в то, что назывался мой предыдущий файл, и он воспроизводится без проблем.
Я не знаю, почему это не может воспроизвести существующий файл. Windows сообщает, что что-то не так, но я понятия не имею, что.
Я добавил проверку прямо перед тем, чтобы убедиться, что она существует. Я также пробовал абсолютные пути.
string wavPath = "c:\\frog.wav";
struct stat stFileInfo;
bool blnReturn = (stat(wavPath.c_str(), &stFileInfo) == 0); //this returns true
FILE* fp = fopen(wavPath.c_str(), "r");
if (fp) {
fclose(fp); //this triggers
}
PlaySound(wavPath.c_str(), NULL, SND_FILENAME | SND_ASYNC); //m_hinstance
//C:\\Users\\Wollan\\My Code\\A\\Debug\\frog.wav
//TEXT("frog.wav")
//TEXT(wavPath.c_str())
//(LPCSTR)"frog.wav¨
Файл отлично воспроизводится в WMP.