Ce petit tuto vous propose d'exécuter une DLL depuis un livre Linotte !
Pour illustrer simplement cet exemple, nous allons utiliser une DLL déjà incluse dans le système d'exploitation Windows (User32.dll).
Ce tuto a été testé sous Windows XP.
Voici les étapes :
1 - Télécharger Jnative
L'utilisation de cette librairie simplifie l'appel des DLL. Vous pouvez la trouver ici :
http://sourceforge.net/projects/jnative/
Copier le fichier jnative.jar dans le répertoire greffons de votre Atelier.
2 - Création du descripteur de greffon
Dans votre éditeur de texte préféré, copier le descripteur suivant :
Les balises lib indiquent à l'interprète Linotte les librairies qu'il devra charger au démarrage :
- JNative.jar
- DemoDLL.zip contiendra le code Java de notre greffon
3 - Création du greffon
Maintenant, depuis votre éditeur Java adoré, créez la classe Java suivante :
N'oubliez d'ajouter dans votre classpath la librairie JNative.jar et la classe Greffon.java présente dans le répertoire suivant :
langagelinotte\greffons\org\linotte\greffons\externe
4 - Création de l'archive du greffon
Récupérez le fichier DemoDLL.class généré pour le mettre dans le fichier ZIP : DemoDLL.zip et copiez le dans le répertoire greffons de l'Atelier.
5 - Tester !
Relancez l'Atelier Linotte et tester l'exemple suivant :
Pour illustrer simplement cet exemple, nous allons utiliser une DLL déjà incluse dans le système d'exploitation Windows (User32.dll).
Ce tuto a été testé sous Windows XP.
Voici les étapes :
1 - Télécharger Jnative
L'utilisation de cette librairie simplifie l'appel des DLL. Vous pouvez la trouver ici :
http://sourceforge.net/projects/jnative/
Copier le fichier jnative.jar dans le répertoire greffons de votre Atelier.
2 - Création du descripteur de greffon
Dans votre éditeur de texte préféré, copier le descripteur suivant :
Code:
<
?xml version="1.
0" encoding="UTF-8"?>
<
greffon nom="DemoDLL" espece="DemoDLL" class="DemoDLL">
<
lib>
JNative.
jar<
/lib>
<
lib>
DemoDLL.
zip<
/lib>
<
description>
Exemple d'appel d'une DLL sous Windows<
/description>
<
auteur>
R.
M<
/auteur>
<
version>
0.
1<
/version>
<
/greffon>
Les balises lib indiquent à l'interprète Linotte les librairies qu'il devra charger au démarrage :
- JNative.jar
- DemoDLL.zip contiendra le code Java de notre greffon
3 - Création du greffon
Maintenant, depuis votre éditeur Java adoré, créez la classe Java suivante :
Code:
import org.
linotte.
greffons.
externe.
Greffon;
import org.
linotte.
greffons.
externe.
Greffon.
DocumentationHTML;
import org.
xvolks.
jnative.
JNative;
import org.
xvolks.
jnative.
Type;
/**
* http:
//jnative.
sourceforge.
net/docs/org/xvolks/jnative/JNative.
html
*
*/
@DocumentationHTML("Ce greffon présente un exemple d'utilisation d'un dll sous Windows.
Il s'utilise en appelant demodll.
message(\"Bonjour tout le monde !\")")
public class DemoDLL extends Greffon {
@Slot(nom = "message")
public String message(String texte) {
String retour = "-1";
try {
JNative messageBox = new JNative("User32.
dll", "MessageBoxA");
messageBox.
setRetVal(Type.
INT);
messageBox.
setParameter(0, Type.
INT, "0");
messageBox.
setParameter(1, Type.
STRING, texte);
messageBox.
setParameter(2, Type.
STRING, "Message depuis Linotte !");
messageBox.
setParameter(3, Type.
INT, "" + ( 0x00000020L /*MB_ICONQUESTION*/ | 0x00000006L /*MB_CANCELTRYCONTINUE*/));
messageBox.
invoke();
retour = messageBox.
getRetVal();
messageBox.
dispose();
} catch (Throwable e) {
e.
printStackTrace();
}
return retour;
}
}
N'oubliez d'ajouter dans votre classpath la librairie JNative.jar et la classe Greffon.java présente dans le répertoire suivant :
langagelinotte\greffons\org\linotte\greffons\externe
4 - Création de l'archive du greffon
Récupérez le fichier DemoDLL.class généré pour le mettre dans le fichier ZIP : DemoDLL.zip et copiez le dans le répertoire greffons de l'Atelier.
5 - Tester !
Relancez l'Atelier Linotte et tester l'exemple suivant :
Code:
MessageBox :
Exemple :
Rôles :
messager :
:
demodll
Actions :
Affiche messager.
message("Allo Huston ?")
Termine