當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。