У меня есть этот код в .mmПеревести на Objective-C от Objective-C++
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, и в этом случае я бы просто оставил его в покое.
Спасибо, +1, и я приму этот ответ, как только я его перевариваю (или как только XCode делает;)). –