On 12/11/05, Joe Van Dyk <joevandyk / gmail.com> wrote: > 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). Is this a reasonable approach: int main() { initialize ruby stuff create glib thread (or maybe pthread) { run ruby script that starts the GUI } }