|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2003
Città: roma
Messaggi: 849
|
[JAVA] importare librerie .dll in java
ciao ragazzi.
è possibile importare ed usare una libreria di windows tipo... che ne so... ati2evxx.dll (mettiamo che voglia usare qualche funzione specifica della scheda video che ne so! tanto per dirne una...) all'interno di un'applicazione java per poterne usare le funzioni??? ho trovato una direttiva chiamata @dll.import ma è proprietaria di microsoft e funziona solo sotto J/Direct che è una specie di add-on per la microsoft virtual machine o cose del genere... grazie tanto dell'info... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Ciao,
generalmente le funzioni che scrivi in una dll, al fine di essere importate in Java, devono avere una particolare segnatura. Non so se esistono altre modalita'. Potresti creare una nuova dll che "wrappa" le funzioni che ti servono: le funzioni della tua dll le chiami da li'. High Flying Sottovento
__________________
In God we trust; all others bring data |
|
|
|
|
|
#3 |
|
Messaggi: n/a
|
cerca il plugin jni
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
"il plugin in jni" è un pezzo standard della piattaforma Java SE. L'hai già trovato.
Usi jni per fare quello che segnala sottovento. Supponiamo che tu voglia accedere alla funzione nativa "int bimBumBam()", definita nella dll "Kaboom.dll". 1. Creo un oggetto Java KaboomWrapper (il nome è irrilevante) che offre un metodo nativo che sarà collegato alla funzione bimBumBam di Kaboom.dll. Codice:
public class KaboomWrapper {
public native int bimBumBam(); //anche questo nome è arbitrario
}
Dai una definizione C/C++ di quella dichiarazione. In questa definizione invochi il metodo bimBumBam dichiarato e definito nella libreria Kaboom.dll (che provvederai a caricare o collegare o fare quello che di solito si fa in C). A questo punto compili la definizione C della controparte nativa e generi una dll, diciamo KaboomWrapper.dll. E il gioco è fatto. Avendo cura di fornire a java la libreria KaboomWrapper.dll, l'uso dell'oggetto KaboomWrapper richiederà il caricamento iniziale della libreria KaboomWrapper.dll System.loadLibrary("KaboomWrapper"); dopodichè KaboomWrapper sarà un oggetto tale e quale agli altri: KaboomWrapper kw = new KaboomWrapper(); int valore = kw.bimBumBam(); Dietro le quinte, il valore di "risultato" sarà ottenuto invocando attraverso la libreria involucro KaboomWrapper.dll la funzione bimBumBam() definita in Kaboom.dll. E' molto più facile a farsi che a dirsi |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:48.



















