From: Kostas Katsamakas Date: 2002-08-11T04:50:54+09:00 Subject: Embeding Ruby in C++ code. I have written the following code: #include VALUE do_something(VALUE str) { printf("executing function: do_something\n"); char *s = RSTRING(str)->ptr; printf("argument: %s\n", s); return rb_tainted_str_new2("OK"); } int main(int argc, char* argv[]) { //Way 1 ruby_init(); //Here i register my global function rb_define_global_function("do_something", (VALUE (*)(...))&do_something, 1); rb_eval_string("do_something \"hi!\"\n"); return 0; } The command gets evaluated ok but something seems to be wrong with the argument i get in the do_something function. If i use the TYPE(str) macro i get as a result 2 which equals T_OBJECT instead of T_STRING as i expected. What am i doing wrong? Thank you in advance Kostas