
`ffi[\'add\']`를 호출하는 부분이 오류를 발생시키는 원인은 `ffi[\'add\']`가 정적 메서드 호출을 위해 사용되는 Ruby 메서드 `call`을 호출하는 것에 있습니다. 이 메서드는 C 함수를 호출하는 데 사용되며, C 함수의 매개변수를 Ruby 객체로 전달할 때 오류가 발생합니다.
정적 메서드를 호출하는 방법은 `ffi['add'].call(p)`로 호출하는 것입니다. 이 방법은 C 함수를 호출하는 데 사용되는 Ruby 메서드 `call`을 호출하는 것에 있습니다.
#hostingforum.kr
ruby
ffi = FFI::Library.new 'libexample.so'
cdef = <<-CODE
typedef struct {
int x;
int y;
} Point;
int add(Point* p);
CODE
ffi.attach 'libexample.so', cdef
p = Point.new
p.x = 1
p.y = 2
result = ffi['add'].call(p)
이 코드는 정적 메서드 `add`를 호출하는 데 사용되는 Ruby 메서드 `call`을 호출하는 것에 있습니다. 이 방법은 C 함수를 호출하는 데 사용되는 Ruby 메서드 `call`을 호출하는 것에 있습니다.
2025-07-06 02:34