Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Usare dll (user32.dll) in un programma java
Forum - Java - Usare dll (user32.dll) in un programma java

Avatar
hackme (Normal User)
Newbie


Messaggi: 14
Iscritto: 04/11/2009

Segnala al moderatore
Postato alle 22:25
Mercoledė, 27/04/2011
Buonasera a tutto il forum.
Sto studiando da qualche giorno i native method... Allora per capire meglio ho deciso di fare un programma:

Codice sorgente - presumibilmente Java

  1. public class main {
  2.  
  3.          private static native int MessageBox(int hwndOwner, String text,String title, int fuStyle);
  4.          
  5.         main(){
  6.        
  7.                 try{
  8.                         System.loadLibrary("kernel32");
  9.  
  10.                 }catch(UnsatisfiedLinkError e){
  11.                         System.out.println(e);
  12.                 }
  13.         }
  14.        
  15.         public static void main(String[] args) {
  16.         main user32 = new main();
  17.            
  18.                     user32.MessageBox(0, "", "", 0);
  19.         }
  20.  
  21. }



Solo che se lo faccio partire mi dice :
Codice sorgente - presumibilmente Java

  1. Exception in thread "main" java.lang.UnsatisfiedLinkError: main.MessageBox(ILjava/lang/String;Ljava/lang/String;I)I
  2.         at main.MessageBox(Native Method)
  3.         at main.main(main.java:20)




Come faccio???

PM
Avatar
paoloricciuti (Ex-Member)
Pro


Messaggi: 137
Iscritto: 27/04/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 0:42
Giovedė, 28/04/2011
Vuol dire che non riesce a trovare il file kernel32!!

1. Facendo in questo modo cerca il file kernel32 nella directory dove č avviato il jar!

2. Per utilizzare JNI la dll la devi aver creata tu ad hoc a partire dall'header generato tramite il programma fornito nella JDK (javah). Non puoi caricare semplicemente una dll!!!

Grazie di avermi risposto, ma perchč non me la trova neanche cosė: - hackme - 28/04/11 07:52
System.loadLibrary("C:/Windows/System32/user32.dll"); - hackme - 28/04/11 07:52
PM