Wrapping C++ dll in ruby


#1

Hello

I’m fairly new to RoR (and Ruby), so please forgive me my possible
stupid questions.

I have a C++ dll which is like a clientside-accespoint to some
webservices (for security reasons). Now I want to address the dll from
ruby code, cause I want to do some functional testing on the services
it implements.

I read a reference to Ruby Native on
http://www.gaffer.org/archives/ruby-native-2
but I 'm not sure this is what I want

so anybody has an idea, that would be great…


#2

Hello,

Wrapping a C++ DLL is not /that/ difficult but it is not straight.

Ruby is only able to access C (read the README.EXT file in the Ruby
source code), therefore you need to wrap you C++ in C:

Ruby -> C -> C++

You might want to try SWIG (http://www.swig.org), which creates
bindings with little effort. The problem with SWIG is the code does
not feel like Ruby.

Depending on how comprehensive you need your bindings to be and how
Ruby you want them to be, it might be easier/better you just write a
few C functions wrapping the C++ clasess and methods you need.

I don’t know if it’s going to help you, but Ruby/DLX might be useful
too: http://ruby-dlx.rubyforge.org/index.xhtml


Pau Garcia i Quiles
http://www.elpauer.org
(Due to the amount of work, I usually need 10 days to answer)

Quoting “removed_email_address@domain.invalid” removed_email_address@domain.invalid:


#3

You can also try http://www.gaffer.org/archives/category/ruby/ . It
has some
good examples of C++ objects bing used in Ruby.


#4

Thanks a lot!

Johan