C�dric a �crit :
> Bonjour � tous,
> Fervent utilisateur d'etcl pour la r�alisation de bancs de
> qualification ou d'IHMs, j'�tudie actuellement les possibilit�s
Ca, c'est sympa comme entree en matiere, merci :)
> d'int�grer skype dans une de nos applications. J'ai pu trouver sur le
> site http://sourceforge.net/projects/tclskype/ un package offrant
> cette possibilit�. Je rencontre cependant un conflit avec etcl lorsque
> je souhaite appeler ce package depuis une interface tkcon ( crash
> d'etcl).
> Quelqu'un aurait-il eu l'occasion de r�aliser ce test ?
> Cordialement,
> C�dric Bernard
J'ai recupere l'archive de la distribution binaire
(tclskype-0.2.1-win.zip) pour test. Apres inspection des dependences de
la DLL, il s'avere que celle-ci est compilee sans utiliser le mecanisme
de stubs de Tcl, et depend donc de TCL85.DLL. La Dll depend aussi
d'autres DLL systemes (GPSVC.DLL et IESHIMS.DLL) qui ne sont pas
toujours disponibles.
La dependance a TCL85.DLL (au lieu d'utiliser le mecanisme de stubs) est
particulierement genante. Cela signifie que la DLL est specifique a une
version precise de la librairie Tcl, et que elle ne peut passer d'une
distribution a une autre, ni meme d'ailleurs d'une version a une autre
d'une distribution donnee. Si vous n'avez que eTcl comme distribution
Tcl installee, alors TCL85.DLL est simplement manquant sur votre
systeme, et vous obtiendrez un message "Couldn't load library
"skype.dll": this library or a dependent library could not be found in
library path". Si vous avez une autre distribution Tcl installee, une
Dll TCL85.DLL sera trouvee et chargee dans le meme espace que les
symboles Tcl de l'interprete actif, et ces collisions meneront au crash
presque a coup sur. Le meme crash se produira demain si vous essayer de
charger la DLL en question depuis une version 8.6 de n'importe quel
distribution.
L'introduction du mecanisme de stubs dans Tcl (il y a bien longtemps
maintenant) a pour objectif justement d'eviter ce probleme, et la
quasi-totalite des distributions binaires d'extensions pour Tcl
l'utilisent. La meilleure solution consisterait donc a se rapprocher de
l'auteur du package pour voir s'il peut regenerer une version binaire
sans ce probleme (un rapide coup d'oeil a la configuration Cmake
presente dans les sources montre bien que ce n'est pas utilise).
L'autre solution est bien sur de regenerer vous-meme le binaire depuis
les sources (qui se limitent a 4 fichiers C donc assez accessible), en
utilisant bien USE_TCL_STUBS=1. Enfin, il doit etre possible de compiler
au vol l'extension avec Odyce depuis ces 4 fichiers C. Je n'ai pas eu le
temps de l'essayer, mais si quelqu'un veut si pencher, je tacherai
d'aider (et eventuellement j'essaierai moi meme plus tard).
Eric
-----
Eric Hassold
Evolane - http://www.evolane.com/