--nextPart2750306.cXgpGYuoH4 Content-Type: text/plain; charset tf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Quoth Konrad Meyer: > Quoth Daniel Berger: > > > > On Sep 21, 1:01 pm, Michael Neumann <mneum... / ntecs.de> wrote: > > > Hi all, > > > > > > I am proud to announce my latest project called CplusRuby. > > > Below I pasted it's README for further explanation. > > > Alternatively read the following blog article: > > > > > > http://www.ntecs.de/blog/articles/2007/09/21/cplusruby-gluing-c-and-ruby > > > > <snip> > > > > First patch! > > > > C:\Documents and Settings\djberge\My Documents\My Downloads\Ruby>diff - > > u cplusruby.orig cplusruby.rb > > --- cplusruby.orig Fri Sep 21 15:50:38 2007 > > +++ cplusruby.rb Fri Sep 21 15:49:04 2007 > > @@ -11,6 +11,10 @@ > > # > > # Implements a simple ordered Hash > > # > > +require 'rbconfig' > > +require 'win32/process' if RUBY_PLATFORM.match('mswin') > > +include Config > > + > > class OHash < Hash > > def []=(k, v) > > @order ||= [] > > @@ -146,20 +150,28 @@ > > dir = File.dirname(file) > > mod, ext = base.split(".") > > > > + make = RUBY_PLATFORM.match('mswin') ? 'nmake' : 'make' > > + > > File.open(file, 'w+') {|f| f << self.generate_code(mod) } > > Dir.chdir(dir) do > > - system("make clean") > > + system("#{make} clean") > > + > > pid = fork do > > require 'mkmf' > > $CFLAGS = cflags > > $LIBS << (" " + libs) > > create_makefile(mod) > > - exec "make" > > + exec "#{make}" > > end > > _, status = Process.waitpid2(pid) > > - raise if status.exitstatus != 0 > > + > > + if RUBY_PLATFORM.match('mswin') > > + raise if status != 0 > > + else > > + raise if status.exitstatus != 0 > > + end > > end > > - require "#{dir}/#{mod}.so" > > + require "#{dir}/#{mod}." + CONFIG['DLEXT'] > > end > > > > def self.generate_code_for_class > > > > Mostly fixes MS Windows issues, but the DLEXT bit also fixes platforms > > that don't generate .so files (OS X, HP-UX). > > > > Regards, > > > > Dan > > Does the C->ruby mapping map between char * and Strings? > > Thanks, > -- > Konrad Meyer <konrad / tylerc.org> http://konrad.sobertillnoon.com/ Also, is there a way to define C functions from ruby that return a C type? -- Konrad Meyer <konrad / tylerc.org> http://konrad.sobertillnoon.com/ --nextPart2750306.cXgpGYuoH4 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQBG9GMECHB0oCiR2cwRAp9GAJ9kJazwIyQ7vo6cIFXoffLdbeskqACfeqIX WZeyve3R/k3nvJ5C7vrW2vURT -----END PGP SIGNATURE----- --nextPart2750306.cXgpGYuoH4--