抱歉可能重复,但我不理解我找到的示例和代码片段。
我有一个名为“EncoderWrapper”的类,其中包含一些功能。其中一个函数称为“onAfterTouch”,并在“EncoderWrapper.h”文件中声明。
void onAfterTouch(byte channel, byte pressure);
这些函数将成为我使用的库的另一个类函数的回调
inline void setHandleAfterTouch(void (*fptr)(uint8_t channel, uint8_t pressure)) {
usb_midi_handleAfterTouch = fptr;
};
注意:我对 C++ 完全陌生,所以如果我正在做一些“禁止”或混淆某些术语,我想说声抱歉。
问题是:如何将我的类函数(成员函数?)传递给库的“setHandleAfterTouch”函数?
这不起作用:
void EncoderWrapper::attachMIDIEvents()
{
usbMIDI.setHandleAfterTouch(&EncoderWrapper::onAfterTouch);
}
...我的 IDE 说
调用 usb_midi_class:setHandleAfterTouch(void (EncoderWrapper::*)(byte, byte)) 没有匹配函数
我也试过
usbMIDI.setHandleAfterTouch((&this->onAfterTouch));
但这行不通……而且我不明白这一点。
非常感谢每个帮助 ;-)