我想从 OS X 的 DVDPlayback 框架中调用以下函数:
OSStatus DVDGetMediaVolumeCFName (
CFStringRef *outDiscVolumeCFName
);
最终,我想出了以下工作代码:
framework 'DVDPlayback'
p2 = Pointer.new_with_type('^{__CFString}')
DVDGetMediaVolumeCFName(p2)
但是我在任何文档中都没有找到'^{__CFString}'
它,只是后来才知道它在做什么(我最初是从错误消息中剪切并粘贴它的)。我首先用 :id 和 :string 尝试了 Pointer.new,但没有成功。
所以我的问题是:
- 获得这个指针的最佳方式是什么(我的方式看起来很丑)?
- 为什么没有 Pointer.new(:string) 工作?我认为 String、NSString 和 CFString 是等价的
- 我会在哪里找到这些信息?(我查看了 MacRuby 网站,“macro Pointer”报告“Nothing known about Pointer”、~12 次谷歌点击和“MacRuby:权威指南”)