【问题标题】:Filter type undeclared?过滤器类型未声明?
【发布时间】:2013-08-04 22:27:50
【问题描述】:

我应该强制转换 Interrupt Filter 以传递给函数,但问题是,我的 Xcode 总是告诉我 Filter 类型未声明..

这是我的部分代码:

interruptSrc = IOFilterInterruptEventSource::filterInterruptEventSource((OSObject*)this,
                                   (IOInterruptEventAction)&VoodooSDHC::interruptHandler,
                                   (Filter)&VoodooSDHC::interruptFilter,
                                   (IOService*)provider);

我是MacXcode 的新手,所以我真的不知道在这种情况下我应该怎么做。

当函数实际采用该类型的参数时,它如何抱怨它未定义?

【问题讨论】:

  • 这是 only 编译错误吗?声明Filter 的标题是否包含在当前翻译单元中,在这一行之前? OTOH,您可以转发声明。顺便说一句,您正在传递一个指针,Filter 是指针类型吗?
  • 编译时打开所有警告,并发布您获得的所有编译器输出。

标签: c macos kernel-module mach kernel-extension


【解决方案1】:

您正在获取某个东西的地址并将其转换为看起来不像指针的东西。要么是指针类型定义(魔鬼的产物),要么不是一个好的演员表。

你确定它不应该是:

(Filter *)&VoodooSDHC::interruptFilter,

?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多