1

ここにこの機能があります。ボリュームは 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 でも答えがありません。

4

1 に答える 1