我想在 Mac OS X 上挂接一个 C 函数。它是AudioUnitInitialize
,所以我可以创建一个回调并将音频保存到一个文件中。我从这个页面获得了 Mobile Substrate 框架和教程。这是我用于将该函数与MSHookFunction
.
static OSStatus (*AudioUnitInitialize_original)(AudioUnit aInUnit);
OSStatus AudioUnitInitialize_hooked(AudioUnit aInUnit)
{
NSLog(@"AudioUnitInitialize_hooked -> START");
OSStatus __return = AudioUnitInitialize_original(aInUnit);
NSLog(@"%p", aInUnit);
NSLog(@"%@", aInUnit); // Here the target application crashes.
NSLog(@"AudioUnitInitialize_hooked -> END");
return __return;
}
...
MSHookFunction(AudioUnitInitialize, AudioUnitInitialize_hooked, &AudioUnitInitialize_original);
这里有什么问题?我可以记录音频单元的地址,但不能记录更多?有没有使用函数参数的解决方案?