1
我已經實現紅寶石C擴展(從紅寶石腳本調用即C函數) 以下是從文件「cFile.c」如何檢索C中的結構成員變量,從ruby腳本傳遞?
#include<stdio.h>
static VALUE cFunction(VALUE self, VALUE src)
{
if(TYPE(str) == T_STRUCT)
{
printf(" variable str is of STRUCT type \n");
}
// here how can i get the members of structure variable "str"
return Qnil;
}
void Init_MyRuby()
{
VALUE MRuby = rb_define_module("MyRuby");
rb_define_singleton_method(MRuby, "cFunction", cFunction, 1);
}
以下用C語言實現的功能被紅寶石腳本的代碼調用functon( )方法通過傳遞struct類型變量。 client.rb:
require 'cFile'
customer = Struct.new("Customer", :name, :address, :zip)
joe = customer.new("JoeSmith", "123 Maple, Anytown NC", 12345)
MyRuby::cFunction(joe)
任何人都可以告訴我如何獲得cFunction()中的結構成員(即名稱,地址等)? 在此先感謝
非常感謝@undur_gongor .... – BSalunke