У меня есть этот код в .mm
void MyMIDINotifyProc(const MIDINotification *message, void *refCon);
, который идет с этой строкой
MIDIClientCreate((CFStringRef)@"MidiMonitor MIDI Client", MyMIDINotifyProc, self, &client);
, а затем MyMIDINotifyProcвызывается из CoreMIDI.
Не меняя расширение файла на .m, я перевел на подпись Obj-C:
@interface MidiInput (Private)
-(void) MyMIDINotifyProc:(const MIDINotification *)message reference:(void *)refCon;
@end
, которая компилируется, но тогда я понятия не имею, что делатьс линией MIDIClientCreate
.Как есть, он производит "MyMIDINotifyProc" was not declared in this scope
.Предполагается, что он имеет тип void *
... И документы на 100% ясны, что это A refCon passed back to notifyRefCon
( link ).
Эта проблема разрешима только в Obj-C?Я полагаю, что мне пришлось бы перевести материал C ++ в C, и в этом случае я бы просто оставил это в покое.