2012-07-12

Jovem, queres usar DLL em Java?

Também tu podes agora usar DLL em Java sem teres de tirar um curso em JNI (e andares a "contar" ponteiros, e sem teres suores cada vez que há um erro - que tu culpas logo no programador de C do outro lado da barricada claro).


Yep, resumindo, JNI é uma dor de usar, e os problemas são tantos que nem vale a pena o esforço. Logo, e para responder ao título do post, recomendo vivamente JNA. Estupidamente fácil de usar, estupidamente sólido, e quando há problemas, sabes logo se é do teu lado (duh!) ou do lado de quem fez o DLL (duh!). Aliás, chega ao ponto do estupidamente fácil que tu:



  1. Public Interface OmeuDLL extends Library{
  2. OmeuDLL INSTANCE = (OmeuDLL) Native.loadLibrary("OmeuDLL")
E quando o queres usar:
  1. OmeuDLL xpto = OmeuDLL.INSTANCE
  2. xpto.asfuncoesdogajodeC();
  3. xpto.loleleusaponteiros(lol);

Lembra-te apenas que quando no header do DLL vires char, char* ou void* tens de ter o cuidado de colocar o correspondente tipo de váriável correcto. Neste caso char - byte, char* - String, void* - Pointer.



EDIT by Pedro: editado HTML para permitir linewrap. Blogger, eu ter de ir mexer no HTML do post para o o linewrap acontecer é, bem, um bocado parvo!

No comments: