From: Philliam Auriemma Date: 2010-01-26T08:15:06+09:00 Subject: Re: ruby extension problem On Jan 25, 2:34 pm, Aaron Patterson wrote: > On Tue, Jan 26, 2010 at 07:10:15AM +0900, Philliam Auriemma wrote: > > Hey guys, > > I am writing a ruby extension in C++ that exposes a function to ruby, > > and then opens a ruby interpreter that loads a file that can call the > > function. > > > I am following the Pragmatic Programmers guide to embedding and > > extending ruby. I have a function defined like this: > > > static VALUE Send (VALUE length, VALUE capMode, VALUE dev, VALUE pack) > > This function needs to take a leading VALUE which holds a reference to the > recipient of the call.  Try this instead: > >   static VALUE Send (VALUE mod, VALUE length, VALUE capMode, VALUE dev, VALUE pack) > > -- > Aaron Pattersonhttp://tenderlovemaking.com/ I still have a similar error: 1>.\main.cpp(45) : error C2664: 'rb_define_module_function' : cannot convert parameter 3 from 'VALUE (__cdecl *) (VALUE,VALUE,VALUE,VALUE,VALUE)' to 'VALUE (__cdecl *)(...)' 1> None of the functions with this name in scope match the target type Line 45 is the rb_define_module_function(cTest, "Send", Send, 4);