2013-10-29 5 views
1

여기에이 함수가 있습니다. 볼륨이 500으로 설정되고 파일 이름 문자열이 "test.mp3"으로 설정됩니다.C++ mciSendString setaudio 오류

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조차도 아니다.

답변

0

volume은 문자열이 아니기 때문에 작동하지 않습니다. 정수를 문자열로 변환해야합니다. 컴파일러에 따라 std::to_string을 사용하여 int에서 string으로 변환 할 수 있어야합니다.

+0

내 부분에 와우가 매우 어리석은 오류가 발생했습니다. 지금은 고맙습니다. – nurtul