fsfe-france
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fsfe-france] [Windows/librairie] Definition epineuse d'une license


From: Kurosu
Subject: [Fsfe-france] [Windows/librairie] Definition epineuse d'une license
Date: Tue, 10 Dec 2002 22:46:54 +0100 (CET)

Bonjour,

Je suis l'auteur (si ce terme n'est pas usurpe, cf la suite) d'une dll se
basant sur Zidrav (http://www.sourceforge.net/zidrav), programme sous
license GPL. L'auteur m'a autorise a distribuer le code sous la license
LGPL.

Cependant des problemes se posent... Tout d'abord, la dll serait utilise
dans un programme non libre, a savoir mIRC (www.mirc.com). Ceci passe par
son language de script, ou on peut faire appel ades fonctions 'exportees'
(je pense que l'explication de ce terme est long et difficile pour moi) de
la dll.

L'appel s'ecrit: "dll nom.dll Fonction chaine de parametres" (sans '"').
Le prototype de la fonction correspondante est:
int __stdcall Fonction(HWND mWnd, HWND aWnd, char *data, char *parms, BOOL
show, BOOL nopause)
avec:   mWnd, aWnd des handles d'application/fenetre
        data contient "Fonction chaine de parametres" (sans ")
        parms est la chaine de retour (qu'on peut recuperer avec une autre
        syntaxe de l'appe, $dll(nom.dll,Fonction,chaine de parametres))
        show indique que parms ne doit pas entraine d'echo dans le script
                ou l'application
        nopause indique que la dll ne doit pas bloquer mIRC dans son
                fonctionnement
La valeur entiere sert a preciser comment mIRC doit poursuivre l'execution
du script (arret, continuer, executer la commande contenue dans parms,
retourner params)

L'appel a la fonction sert a demarrer une thread (probleme de blocage du
script lors de l'execution d'une dll) qui fera executer une portion
d'alias a mIRC, par le processus qui suit apres. La fonction en elle-meme
ne fait que demarrer la thread et indiquer la reussite ou l'echec de cette
operation.

La dll peut communiquer un peu plus avec mIRC en utilisant 2 moyens:
- un fichier de mapping contenant du texte (ca peut etre une commande de
script a executer par mIRC, ou la valeur retournee par une commande
executee precedemment).
- la fonction SendMessage qui fait partie des Microsoft Foundation Classes
(MFC) et qui est un moyen classique de communication entre 2 applications
(a travers leur fenetre)

Le code (si cela est relevant) est tronque en 2 parties principales:
- le code originel de zidrav adapte (gestion des erreurs, boucle de
temporisation travaillant au niveau des threads telles que gerees par les
MFC
- un fichier de source contenant en quelque sorte les interfaces (telles
que definies par le prototype precedent) et quelques headers pour definir
les variables globales, les codes d'erreur, ...

Un des points qui posaient probleme(s) se situe la:
http://www.gnu.org/licenses/gpl-faq.html#TOCGPLPluginsInNF

La license LGPL est une solution de facilite qui me semble acquise, mais
autant que possible, je souhaite aider la cause du libre. Je peux mettre a
disposition le code pour enquete (si cela n'est deja pas enfreindre une
loi/license). Je tiens aussi a signaler que ceci est ma premiere
experience avec le monde libre.

Je vous remercie de toute aide sur ce probleme.
-- 
Kurosu (Kurosu (at) inforezo dot org)
Attempts to make usefull tools: http://kurosu.inforezo.org
"Reality ? Is that where the pizza delivery guy comes from ?"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]