ここにこの機能があります。ボリュームは 500 に設定され、ファイル名文字列は「test.mp3」に設定されます。
void Volume(int volume, std::string filename)
{
std::string szCommand = "setaudio \"" + filename + "\" volume to " + volume;
mciSendString(szCommand.c_str(), NULL, 0, 0);
}
エラーが発生しています。
no match for 'operator+' in 'std::operator+(std::basic_string<_CharT, _Traits, _Alloc>&&, const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>](((const char*)"\" volume to ")) + volume'|
.mp3 ファイルのロード時に以下の関数が完全に機能するため、理由がわかりません。
void Load(std::string filename)
{
std::string szCommand = "open \"" + filename + "\" type mpegvideo alias " + filename;
mciSendString(szCommand.c_str(), NULL, 0, 0);
}
なぜ機能しないのか混乱しています。ファイル名を受け入れない setaudio の何が問題になっていますか? どこでも検索しましたが、MSDN でも答えがありません。