8

我一直在我的应用程序中使用Unimotion来读取 Apple 笔记本电脑的运动传感器值,但无法将代码移植到 10.6 64 位。(我也试过SMSLib也没有运气。)

  • 有没有简单的兼容 10.6 的 SMS API?

如果没有其他选择,我也在考虑修补其中一个库。Unimotion 和 SMSLib 都使用以下调用,该调用已在 10.5 中弃用并从 10.6 64-bit中删除:

result = IOConnectMethodStructureIStructureO(
    dataPort, kernFunc, structureInputSize,
    &structureOutputSize, &inputStructure, 
    outputStructure);
  • 有什么简单的方法可以用新的 IOKit 调用替换它吗?

这篇文章并没有真正让我走得更远)

4

2 回答 2

6

如果没有其他选择,我也在考虑修补其中一个库。Unimotion 和 SMSLib 都使用以下调用,该调用已在 10.5 中弃用并从 10.6 64-bit中删除:

result = IOConnectMethodStructureIStructureO(
    dataPort, kernFunc, structureInputSize,
    &structureOutputSize, &inputStructure, 
    outputStructure);

有什么简单的方法可以用新的 IOKit 调用替换它吗?

该文件建议更换。这个如何?

kern_return_t
IOConnectCallStructMethod(
    mach_port_t  connection,        // In
    uint32_t     selector,      // In
    const void  *inputStruct,       // In
    size_t       inputStructCnt,    // In
    void        *outputStruct,      // Out
    size_t      *outputStructCnt)   // In/Out

据我所知,除了参数的顺序之外应该没有区别。也就是说,我从来没有使用过 I/O Kit,所以我可能会遗漏一些关键的概念差异,这会使这个调用不像旧的那样工作。

于 2010-02-01T05:08:58.903 回答
1

我没有在 10.6 中使用过这个,但是这行得通吗?

http://code.google.com/p/google-mac-qtz-patches/

于 2010-02-01T03:03:56.983 回答