当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby CStructBuilder.create用法及代码示例


本文简要介绍ruby语言中 Fiddle::CStructBuilder.create 的用法。

用法

create(klass, types, members)

给定 C 构造一个新类:

  • klass 类( CUnion CStruct 或其他提供 entity_class 的类)

  • types(Fiddle::TYPE_INT、Fiddle::TYPE_SIZE_T等,见C类型常量)

  • 对应members

Fiddle::Importer#struct Fiddle::Importer#union 以 easy-to-use 方式包装此函数。

例子:

require 'fiddle/struct'
require 'fiddle/cparser'

include Fiddle::CParser

types, members = parse_struct_signature(['int i','char c'])

MyStruct = Fiddle::CStructBuilder.create(Fiddle::CUnion, types, members)

MyStruct.malloc(Fiddle::RUBY_FREE) do |obj|
  ...
end

obj = MyStruct.malloc(Fiddle::RUBY_FREE)
begin
  ...
ensure
  obj.call_free
end

obj = MyStruct.malloc
begin
  ...
ensure
  Fiddle.free obj.to_ptr
end

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 CStructBuilder.create。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。