저는 C++ 응용 프로그램 내에 Ruby를 임베드했습니다. SWIG를 사용하여 바인딩을 생성했습니다.현재 RB 파일에서 실행중인 Ruby 클래스의 인스턴스를 얻는 방법은 무엇입니까? (C++에서 Ruby 임베디드)
기본적으로 루비 파일을 실행 한 다음 루비가 대신해서 C++ 클래스를 호출합니다.
이전 질문에 근거하여, 저는 루비 파일에 정의 된 클래스의 현재 인스턴스를 C++ 클래스로 가져와 인스턴스 메서드를 실행할 수 있도록하고 싶습니다. 스크립트
rb_eval_string_protect(<ruby script string>, &status);
rb_funcall(Qnil, rb_intern("main"), 0);
세계 주요 방법은 파일에 정의 된 클래스의 인스턴스를 만들고 다음과 같이
나는 루비 파일을 실행합니다. 그게 내가 따라야 할 사건이야.
필자는 매개 변수 나 다른 함수를 추가하여 인스턴스를 다시 전달할 것입니다. 그러나 C++에서 정의하는 방법을 잘 모르겠습니다. 따라서 SWIG에서 바인딩을 생성 할 때 모두 작동합니다.
도움을 주시면 감사하겠습니다.
이전 질문 : Calling Ruby class methods from C++
를 호출 정상으로이 객체를 사용할 수 있습니다 당신은 참조. –