2016-06-27 6 views
3

죄송합니다. 기본 질문 일 수 있습니다. JNA 직접 매핑과 인터페이스 매핑의 차이점은 무엇입니까?JNA 다이렉트 대 인터페이스 매핑?

  • 직접 매핑 :

    올바른 나의 해석이다

  • 인터페이스 매핑 (자바에서 정적 주요처럼) 직접 라이브러리 객체를 사용하여 만드는 을의 intance 라이브러리 개체.

미리 감사드립니다.

답변

4

직접 매핑은 직접 호출 메서드를 사용하려고 시도하는 네이티브 코드에 (native 수정 자로 선언 된) Java 메서드를 직접 바인딩합니다. 직접 매핑은 함수 인수와 반환 값을 기본 유형으로 제한하는 경우 가장 효과적입니다 (Pointer 유형은 프리미티브로 간주 될 수 있음).

인터페이스 매핑은 Proxy을 사용하며 Java 함수 시그니처를 원시 기본 항목으로 변환해야하는 인수 목록이있는 일반 네이티브 엔트리 포인트로 동적으로 변환합니다. Java 유형을 네이티브에서/네이티브로 변환하는 데 더 유연하고 (w/r/t) 유연하지만 인수의 런타임 변환으로 인해 속도가 훨씬 느릴 수 있습니다.