저는 SDL2_mixer 라이브러리를 사용하고 있습니다 만,이 질문은 일반적인 경우에도 마찬가지라고 생각합니다.매개 변수를 변경하지 않고 콜백 범위를 변경할 수있는 방법이 있습니까?
현재 내가 사용하고자하는 함수 인 Mix_HookMusicFinished(void (*music_finished)(void))
에는 C 스타일 함수의 전역 범위에 대한 콜백이 설정되어 있습니다. 그러나 그 콜백은 내 전역 클래스의 함수를 사용할 필요없이 내 클래스 void CMusic::musicFinished()
내의 멤버 함수로 설정해야합니다.
어쨌든 이것을 할 수 있습니까? Mix_HookMusicFinished(musicFinished)
과 같은 것이 좋겠지 만 직접적으로 오류가 있습니다. argument of type "void (CMusic::*)()" is incompatible with parameter of type "void (*)()"