播放声音不播放声音

时间:2020-04-30 19:43:03

标签: c++ error-correction playsound

这是我尝试过的

#include <windows.h>
#include <mmsystem.h>
#pragma comment( lib, "Winmm.lib" )
using namespace std;

int main()
{
    PlaySound(L"C:\Users\Lol\Downloads\Music\Undertale OST - Hotel Extended.wav", 0, SND_FILENAME);
    return 0;
}

这给了我一个错误:

通用字符名称\ U |

不完整

在此之前它还说:

忽略#pragma注释[-Wunknown-pragmas] |

这是怎么了?

1 个答案:

答案 0 :(得分:2)

通用字符名称\ U |

不完整

在字符和字符串文字中,某些escape sequences对编译器具有特殊含义:

escape sequences

您的字符串文字包含两个[[(100, 112), (124, 145)], [(165, 12), (178, 12)], [(234, 14)], [(356, 65)]]转义序列的实例,但是\U之后没有数字值来构成有效Unicode代码点的数字,因此会产生编译器错误。

要在字符串文字中使用实际的\U字符,您需要将其转义为\,例如:

\\

或者,如果您使用的是C ++ 11或更高版本,则可以使用raw string literal,它使用的语法略有不同,不需要您手动转义字符:

L"C:\\Users\\Lol\\Downloads\\Music\\Undertale OST - Hotel Extended.wav"

忽略#pragma注释[-Wunknown-pragmas] |

如何链接到LR"(C:\Users\Lol\Downloads\Music\Undertale OST - Hotel Extended.wav)"文件是特定于工具链的。您的编译器(您未说明使用的是哪个)告诉您它不支持.lib指令。因此,您将不得不以另一种更适合您特定工具链的链接器的方式链接到#pragma comment(lib, ...)。阅读工具链的文档。