views:

77

answers:

1

Hello,

void functions::start()
{

io_iterator_t enumerator;

...some code...

result = IOServiceAddMatchingNotification(
            mNotifyPort,
                                        kIOMatchedNotification,
                                        IOServiceMatching( "IOFireWireLocalNode" ),
                                        serviceMatchingCallback, 
                                        (void *)0x1234,
                                        &enumerator  );    <=====
}

functions.cpp:83: error: argument of type 'void (functions::)(void*, io_iterator_t)' does not match 'void ()(void, io_iterator_t)'


does anyone know what this error mean? I am calling start() from main() through an object of functions ( eg, f->start(); )

i am using xcode and it highlights the line where the arrow points.

Thank you.

+1  A: 

What is serviceMatchingCallback? Judging by the error, it seems to be a member function. You can't pass a member function as a callback in this manner. See this recent discussion on calling a class member function from a callback.

Evän Vrooksövich
serviceMatchingCallback is a member function, you are right!
rashid