gpt4 book ai didi

c++ - C++中PlaySound函数的正确使用

转载 作者:行者123 更新时间:2023-11-28 05:09:14 28 4
gpt4 key购买 nike

我在使用内置函数 PlaySound 时遇到了一些问题。我不断收到两个错误,第一个是:

argument of type "const char *" is incompatible with parameter of type "LPCWSTR",

第二个是:

'BOOL PlaySoundW(LPCWSTR,HMODULE,DWORD)': cannot convert argument 1 from 'const char [35]' to 'LPCWSTR'.

我自己似乎无法解决这些问题,希望得到一些帮助来弄清楚如何消除这些错误。这是我的源代码的一部分,包括我认为导致错误的部分。

#include <iostream>
#include <string>
#include <iomanip>
#include <dos.h>
#include <windows.h>
#include <playsoundapi.h>
#include <mmsystem.h>
using namespace std;
int main()
{
PlaySound("C:\\Users\\Cristian\\Desktop\\cafe.mp3", NULL, SND_FILENAME | SND_ASYNC);
return 0;
}

如果我使用PlaySound功能不正确,请指出正确的方向。

最佳答案

LPCWSTRconst wchar_t * 的宏 - 因此您需要使用宽字符 wchar_t 字符串 L"" 而不是普通的 char 字符串 ""

const wchar_t* path = L"C:\\Users\\Cristian\\Desktop\\cafe.mp3";
PlaySound( path , NULL, SND_FILENAME | SND_ASYNC );

老式的 Win32 方法是使用 TCHAR 和可选的 #define UNICODE 但这被认为是不合时宜的,因为“ANSI”Win32 函数不支持UCS-2/UTF-16(令人惊讶的是,MBCS 并不指 UTF-8)。

请注意,您可能希望使用 SND_SYNC 而不是 SND_ASYNC,因为您的程序将在声音播放完毕之前终止。

最后,PlaySound 不支持 MP3 文件 - 只支持 Wave 文件 - 所以无论如何你的代码都不会工作。

要在 Win32 中播放 MP3 文件,您需要使用:

关于c++ - C++中PlaySound函数的正确使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43859151/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com