2010-06-08 2 views
7

Java에서 GC++를 사용하여 C++을 호출하려고하는데, 지금까지 C++에서 Java 코드를 호출 할 수있었습니다. CNI를 사용하여 Java에서 C++을 호출하려면 어떻게해야합니까?Java (GCJ)에서 C++ 코드 호출

답변

4

나는 GCJ/CNI Docs을 읽을 수 pcent의 대답에 다소 확장 할 수 있습니다.

핵심은 전체 "CNI C++ 클래스"개념을 이해하는 것입니다.

  • CNI C++ 클래스의 생성은 that page 설명한다.
  • CNI C++ 클래스에서 Java 코드를 호출 할 수 있습니다 (헤더 파일을 생성 한 경우). 이미 C++에서 Java를 호출하면됩니다.
  • 요점은 입니다.에서 CNI C++ 메소드를 호출 할 수 있습니다.이 클래스에는 Java 호환 가능하도록 제한이 설정되어 있기 때문입니다. 그리고 CNI 클래스는 (특별한 종류의) C++ 클래스이기 때문에 C++ 클래스를 링크하는 것처럼 다른 라이브러리에도 연결할 수 있습니다.

대부분 documentation은 Java 규칙이 CNI C++ 클래스에서 어떻게 변환되는지 설명합니다.

-1

나는 자바 프로그래머가 아니지만 C#/C++ interop에 익숙하다. 나에게 네이티브 C++에서 관리되는 C#으로 호출하는 가장 좋은 해결책은 콜백을 사용하고있었습니다. 나는이 JNI

시도 독서에도 적용 생각 : http://www.tidytutorials.com/2009/07/java-native-interface-jni-example-using.html

+2

문제는 JNI에 대해 아니었다 - 그것은 완전히 다른 짐승이다 CNI에 대해이었다. –