这是我尝试过的
#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] |
这是怎么了?
答案 0 :(得分:2)
通用字符名称\ U |
不完整
在字符和字符串文字中,某些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, ...)
。阅读工具链的文档。