diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-07-07 07:38:25 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-07-07 07:38:25 +0000 |
commit | 9ff1e787f915539b1980654e3d3d2013ff5c81d2 (patch) | |
tree | 8d0fc9ca5b4dbfa9885dc56862292d55091bcaac /ruby_1_8_6/ext/dl/sample/c++sample.rb | |
parent | 441546edcfbb1b346c87b69c5f578d1a0e522e06 (diff) |
wrong commit; sorryv1_8_6_269
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_269@17938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_6/ext/dl/sample/c++sample.rb')
-rw-r--r-- | ruby_1_8_6/ext/dl/sample/c++sample.rb | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/ruby_1_8_6/ext/dl/sample/c++sample.rb b/ruby_1_8_6/ext/dl/sample/c++sample.rb deleted file mode 100644 index 29887df845..0000000000 --- a/ruby_1_8_6/ext/dl/sample/c++sample.rb +++ /dev/null @@ -1,60 +0,0 @@ -=begin - This script shows how to deal with C++ classes using Ruby/DL. - You must build a dynamic loadable library using "c++sample.C" - to run this script as follows: - $ g++ -o libsample.so -shared c++sample.C -=end - -require 'dl' -require 'dl/import' -require 'dl/struct' - -# Give a name of dynamic loadable library -LIBNAME = ARGV[0] || "libsample.so" - -class Person - module Core - extend DL::Importable - - dlload LIBNAME - - # mangled symbol names - extern "void __6PersonPCci(void *, const char *, int)" - extern "const char *get_name__6Person(void *)" - extern "int get_age__6Person(void *)" - extern "void set_age__6Personi(void *, int)" - - Data = struct [ - "char *name", - "int age", - ] - end - - def initialize(name, age) - @ptr = Core::Data.alloc - Core::__6PersonPCci(@ptr, name, age) - end - - def get_name() - str = Core::get_name__6Person(@ptr) - if( str ) - str.to_s - else - nil - end - end - - def get_age() - Core::get_age__6Person(@ptr) - end - - def set_age(age) - Core::set_age__6Personi(@ptr, age) - end -end - -obj = Person.new("ttate", 1) -p obj.get_name() -p obj.get_age() -obj.set_age(10) -p obj.get_age() |