gpt4 book ai didi

c++ - 声音不适用于 PlaySound

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:52:13 24 4
gpt4 key购买 nike

所以我正在尝试制作一个简单的 DLL 来在另一个程序中播放声音。我正在尝试使用 playsound 功能,并且已对其进行设置,但是当我在其他程序中运行它时,我会听到默认的蜂鸣声。这是我的代码。

export double sound_manage(const char* file_old,double handler) 
{
/*
Handler values:
0 - Play sound
1 - Loop sound
2 - Stop sound
*/
bool good;
double ret;
double op;
if (handler == 0) op = SND_ASYNC;
if (handler == 1) op = SND_LOOP;
if (handler == 2) op = SND_PURGE;
LPCTSTR file;
file = LPCTSTR(file_old);
good = PlaySound(file,NULL,op);
ret = double(good);
return ret;
}

我在链接器中包含了 winmib 或其他任何东西,但我不知道发生了什么。

非常感谢任何帮助!

最佳答案

documentation包括以下内容:

Three flags in fdwSound (SND_ALIAS, SND_FILENAME, and SND_RESOURCE) determine whether the name is interpreted as an alias for a system event, a file name, or a resource identifier. If none of these flags are specified, PlaySound searches the registry or the WIN.INI file for an association with the specified sound name.

所以如果你想播放磁盘上的文件,你必须包含SND_FILENAME标志,例如:

if (handler == 0) op = SND_ASYNC | SND_FILENAME;
if (handler == 1) op = SND_LOOP | SND_ASYNC | SND_FILENAME;

别的,这一行可能是错误的:

file = LPCTSTR(file_old);

如果您不使用 Unicode 进行编译,file_oldfile 兼容,因此您无需转换。如果您使用 Unicode 进行编译,类型转换是不够的。

关于c++ - 声音不适用于 PlaySound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26444916/

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