gpt4 book ai didi

c++ - 您如何在mciSendString中使用变量代替体积? C++

转载 作者:行者123 更新时间:2023-12-03 02:01:26 25 4
gpt4 key购买 nike

因此,我正在使用C++制作基本的2D格斗游戏。对于声音/音频效果,我正在使用mciSendString()

            mciSendString(TEXT("setaudio sounds\\character_select.mp3 volume to 500"), NULL, 0, NULL);

上面的代码工作正常。它将音量设置为500;但是,我不想对音量值进行硬编码。我希望它逐渐变小,而不必一遍又一遍地复制和粘贴同一行,而仅使用较小的体积整数值。
            mciSendString(TEXT("setaudio sounds\\character_select.mp3 volume to " + volume ), NULL, 0, NULL);

我想做这样的事情。在这里,我可以有一个带有任何整数值的变量,而不是硬编码的500。但是,当我运行它时,我没有出现任何错误,并且音频继续正常播放,就像在1000而不是500上一样。

我将如何解决此问题?

最佳答案

首先,您不能将TEXT()宏与变量一起使用。它只能与"Hello"这样的字符数组文字一起使用,并将L放在文字之前,这取决于使用哪个选项(多字节宽字符串或UTF8)来编译代码。

对于后一个选项,您可以使用std::string变量来编写命令:

std::ostringstream oss;
int volume = 300;
oss << "setaudio sounds\\character_select.mp3 volume to " << volume;
std::string cmd = oss.str();

mciSendString(cmd.c_str(), NULL, 0, NULL);

对于其他选项,您需要相应地使用 std::wstringstd::wostringstream

关于c++ - 您如何在mciSendString中使用变量代替体积? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31228054/

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