
FFI::new 메소드는 C 구조체를 Ruby에서 사용할 수 있는 객체로 변환합니다. 구조체의 필드를 초기화하는 방법은 다음과 같습니다.
#hostingforum.kr
ruby
require 'ffi'
# C 구조체 정의
class Point < FFI::Struct
layout :x, :int,
:y, :int
end
# C 구조체를 Ruby에서 사용할 수 있는 객체로 변환
point = Point.new
# 구조체 필드를 초기화
point[:x] = 10
point[:y] = 20
# C 함수를 호출하여 구조체 필드의 값을 사용
puts "x = #{point[:x]}, y = #{point[:y]}"
위 예제에서는 `Point` 클래스를 정의하여 C 구조체를 Ruby에서 사용할 수 있는 객체로 변환합니다. `Point.new` 메소드를 사용하여 C 구조체를 Ruby에서 사용할 수 있는 객체로 변환한 후, 구조체 필드를 초기화하고 C 함수를 호출하여 구조체 필드의 값을 사용합니다.
2025-06-12 17:00