• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby使用C++扩展实例(含C++扩展代码示例)

Ruby使用C++扩展实例(含C++扩展代码示例)

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了ruby实例,ruby 实例变量,ruby,ruby碧玺,ruby woo口红等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

早年写过用C++ + SWIG写Ruby插件的文,但实际中还是以原生C++写Ruby扩展,因为也相当简单。但长久没用还是会忘记,不得不翻以前的老代码回忆,写下这篇博文,若下次再忘记,也不至于去翻仓库。

建立 extconf.rb
require 'mkmf'

$libs = '-lstdc++'
create_makefile 'foo'
</div>
建立 foo.cc
#include <ruby.h>

VALUE plus(VALUE self, VALUE va, VALUE vb)
{
 int a = NUM2INT(va);
 int b = NUM2INT(vb);

 return INT2NUM(a+b);
}

extern "C" void Init_foo()
{
 VALUE foo = rb_define_module("Foo");
 rb_define_module_function(foo, "plus", RUBY_METHOD_FUNC(plus), 2);
}</div>
生成扩展 foo.so
$ ruby extconf.rb
$ make
# 如果要安装至site-ruby
$ make site-install
</div>
测试文件 test.rb
require 'foo.so'

puts Foo.plus(3,4)
$ ruby test.rb
7
</div>

</div>

您可能想查找下面的文章:

  • Ruby中访问SQL Server数据库的配置实例
  • Ruby使用C++扩展实例(含C++扩展代码示例)
  • ruby元编程实际使用实例
  • 优化Ruby脚本效率实例分享
  • Ruby中的反射(Reflection)应用实例
  • Ruby进行文件信息输出实例代码
  • ruby ftp封装实例详解
  • Ruby中钩子方法的运用实例解析
  • 实例讲解Ruby中的钩子方法及对方法调用添加钩子
  • 实例解析Ruby程序中调用REXML来解析XML格式数据的用法

相关文章

  • Ruby实现发送邮件的两个方法
  • 深入理解Ruby中的代码块block特性
  • 利用RJB在Ruby on Rails中使用Java代码的教程
  • Ruby中使用SWIG编写ruby扩展模块实例
  • CentOS 6.3下编译安装Ruby 2.0笔记
  • ruby 小脚本搞定CVS服务器更换后checkout下来的工程迁移
  • Ruby中的gem包管理的使用及gem源搭建教程
  • Ruby面向对象编程中类与方法的基础学习
  • Ruby的面向对象方式编程学习杂记
  • ruby线程实现生产者消费者问题示例(队列Queue实现线程同步)

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • ruby on rails 代码技巧
    • Ruby基础知识之数据类型
    • 借助RubyGnome2库进行GTK下的Ruby GUI编程的基本方法
    • ruby 面向对象思维 概念
    • ruby安装gem包失败的通用解决方法
    • rails创建应用程序实例
    • 几个Ruby小技巧分享
    • Ruby中的反射(Reflection)应用实例
    • Ruby单元测试框架TestUnit的替代者MiniTest介绍
    • web 应用中常用的各种 cache详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有