Eric Hodel <drbrain / segment7.net> wrote: > typealias "FOO", "void *" > > Something like this should do it. (Yeah, void * is probably the wrong > type, see dl/types for what types dl knows about.) Right, typealias-ing to 'void*' seems to do the trick for this case, although I'm not sure if it's really the correct way or just a coincidence. dl/types (mostly) knows about primitive types and pointers to primitive types, and I'm not sure how structs passed on the stack can relate to these. Because if we now consider this: Adding this function to foo.c: void dump_foo( FOO foo ) { printf( "foo.bar = %d\n", foo.bar ); printf( "foo.baz = %d\n", foo.baz ); } And then adding this to foo.rb: extern 'void dump_foo(FOO)' And then doing: foo = Foo.my_make_a_foo Foo.dump_foo( foo ) Gives: foo.bar = -1073791088 foo.baz = 891578649 Instead of: foo.bar = 42 foo.baz = 1 That's why I'm a bit suspicious about the 'void*' thing ;) -- Luc Heinrich - lucsky / mac.com