My C program calls a third-party Windows DLL to provide access to some specialised hardware. I don't have source code for this DLL. We're losing access to the hardware soon but we want to be able to test our software via an emulator. I'd like to write the emulator in Ruby.

So I need a simple way to call Ruby from C - a bit like a reverse SWIG. I can do it using an RPC mechanism to a separate process, but I was wondering if anybody knew of a simpler way. Something where a Ruby library ran in the same process as the C code would be ideal.

Any ideas please?

Thanks,
   Graham.