Привет. Подскажите пожалуйста, как отобразить структуру C/C++ в руби? Читала вот это: http://forum.vingrad.ru/topic-139502.html но тут показано только для методов. С методами понятно. А со структурами - нет. Попыталась сделать по аналогии с найденным в инете: Код | myclass = rb_define_class("Myclass", 0);
...
typedef struct nya { char const* name; int age; } Nya;
...
Nya* p; VALUE vnya;
p = (Nya*)(ALLOC(Nya)); p->name = "Masha"; p->age = 24;
vnya = Data_Wrap_Struct(myclass, 0, free, p);
rb_eval_string("def foo( *a ) p a end"); // Эта функция должна напечатать структуру
rb_funcall(0, rb_intern("foo"), 1, vnya); // Тут мы ее вызываем и передаем объект структуры |
Но Ruby-функция воспринимает это как обычный указатель. Выводит на экран просто численное представление адреса. Очевидно что Ruby не понимает что это структура - мы не сказали ей как называются ее поля и какого они типа. Но как это сделать, найти не удалось.
|