2017-04-06 2 views
0

일부 센서가있는 프로젝트에서 작업 중이며 USB를 통해 PC에 연결하려고합니다. 이제 그들은 c로 작성된 windows lib가 있고 모든 함수는 c의 cdecl 호출 규칙을 사용하고 있으며 다른 언어 (java!)의 programm를 사용하면 호출 규칙이 주어 졌는지 확인해야합니다.특정 C 호출 규칙을 사용하여 Java에서 C lib (dll) 사용 cdecl

그래서 약간 연구하고 자바에서 DLL을 바인딩하고 JNA를 사용하는 자습서를 찾았습니다. 그러나 이것은 나에게 새로운 모든 것들이며 가능한 것이고 (그리고 아마도 그 예일 수도 있습니다.) 장치는 그다지 저렴하지 않고 그것을 사기 전에 그것을 알고 싶습니다.

답변

0

Java에서 C 코드를 호출 할 수 있습니다. 여기에는 문제가 없습니다.

그런 다음 C 루틴에 매우 특정한 것이 있으면 항상 래퍼를 사용할 수 있습니다.

여기를보세요. 차례로 - - 다른 라이브러리를 호출이 샘플에서

http://jnicookbook.owsiak.org/recipe-No-018/

, 당신은 C 코드를 요구하고있다.

JNI 코드를 다른 라이브러리에 연결하여이를 수행 할 수도 있습니다. 여기처럼 :

https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo023

많은 옵션이 있습니다. JNI vs. JNA의 경우. JNA가 충분히 효율적인지 확인하십시오. 일반적으로 JNA는 느려지는 경향이 있습니다. 여기를보세요 :이 도움이

https://github.com/mkopsnc/keplerhacks/tree/master/jnijna

희망을.

여기서는 코드를 게시하지 않습니다. JNI Cookbook의 모든 샘플은 github에서 구할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 장치의 판매자에게 물어 그들이 조금 더 나를 도울 수 있기를 바랍니다. effiptient와 aspekt는 좋은 지적이다. 내가 2-3 센서를 가지고 있고 그들 모두가 40-50khz의 주파수를 가지고있을 때 많은 호출이있을 것입니다 - 아니면 그들이 스트림이나 그와 비슷한 것을 열 것입니다 – white91wolf