On 12/11/05, Joe Van Dyk <joevandyk / gmail.com> wrote:
> On 12/11/05, Joe Van Dyk <joevandyk / gmail.com> wrote:
> > Anyone got any good resources on embedding C into Ruby?  The ones I
> > found were a couple years old (i.e. for 1.6).
> >
> > What I'd like to do is be able to call Ruby functions from the C code
> > (don't care about return value here), and be able to call C functions
> > (and get the return data) from the Ruby code.
>
> I created a Ruby extension in C called 'functions.so'.  My ruby script
> is require'ing it.
>
> When I launch the Ruby script via ruby_run() in C, I get 'no such file
> to load -- functions' error.

Aha, calling ruby_init_loadpath() did the trick.

Essentially, I have a C program.  I want to create a GUI (using
ruby-gnome2) that can call the C program's functions and process and
report its data.

Originally, I added a small UDP server to the C program that would
listen for UDP messages from the Ruby GUI and that's how they
exchanged information.  The process of creating all the message
formats for the UDP messages was a pain in the butt though.  So I'm
thinking of a different approach (embedding a Ruby program in the C
executable and create Ruby extensions for calling the C functions).

Joe