c++ - 在 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)
没有任何效果。
谢谢你;)
解决方案
PlaySound()
是一个预处理器宏,根据您的项目是否配置为映射到或映射到调用PlaySoundA()
或。PlaySoundW()
TCHAR
char
wchar_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)