Hello all! 

Quick question... How can I pass a Perl coderef to a C
library method which is expecting  a function pointer
as a parameter? 

Treating a typedef'ed function pointer as just another
type gives a segv. Well, it was very tempting to try!
A newbee approach:

// in the C library
typedef void (*myCallback) (int a);
void some_C_method(myCallback);


// in the Perl wrapper
void perl_method(SV* callback){

   myCallback cb = (myCallback) SvIV(SvRV(callback));
   some_C_method(cb);
}

# finally in Perl... as you've guessed already:

perl_method( sub{} );


Thanks!

Ogla








__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Reply via email to