首页 > 解决方案 > 在 PlaySound 中使用变量值作为路径

问题描述

我知道如何播放我选择的声音: PlaySound(TEXT("Data\\sounds\\Welcome.wav"), NULL, SND_FILENAME);

问题在于,这另一种声音的路径是未知的,因为它取决于变量的结果。

我尝试将此值作为路径,但我不能。有任何想法吗?

我的尝试:(承认 ObjectOpe.getCurrentOperateur() 返回一个字符串)

std::string NameOP = ObjectOpe.getCurrentOperateur();
std::string Path = "Data\\sounds\\Persos\\ATK\\" + NameOP + ".wav";
const char * LPCTSTRPath = Path.c_str();
PlaySound((LPCTSTR)LPCTSTRPath, NULL, SND_FILENAME);

或者

PlaySound(TEXT("Data\\sounds\Persos\\ATK\\" + NameOP + ".wav"), NULL, SND_FILENAME)

没有任何效果。

谢谢你;)

标签: c++path

解决方案


PlaySound()是一个预处理器宏,根据您的项目是否配置为映射到或映射到调用PlaySoundA()或。PlaySoundW()TCHARcharwchar_t

对于您正在尝试的内容,只需摆脱您的类型转换并PlaySoundA()直接调用:

std::string NameOP = ObjectOpe.getCurrentOperateur();
std::string Path = "Data\\sounds\\Persos\\ATK\\" + NameOP + ".wav";
PlaySoundA(Path.c_str(), NULL, SND_FILENAME);

或者:

PlaySoundA(("Data\\sounds\Persos\\ATK\\" + NameOP + ".wav").c_str(), NULL, SND_FILENAME)

推荐阅读