私はこのコードを.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 *...そしてドキュメントはそれがA refCon passed back to notifyRefCon(リンク)であることを100%明確にしています。
この問題はObj-Cだけで解決できますか?C ++のものをCに変換する必要があると思います。その場合は、そのままにしておきます。