
Envoy� par
JolyLoic
D�j�, DLL et .so poss�dent des diff�rences conceptuelles majeures :
- Une DLL doit avoir tous ses symboles r�solus au moment de la compilation. Ce n'est pas le cas d'un .so qui les r�sous � l�ex�cution. La principale implication pour les plugins est qu'une DLL de plug-in ne peut pas utiliser une fonction du programme principal. On se retrouve g�n�ralement � mettre en place un triptyque : Le programme principal, une DLL de plug-in, et une DLL qui contient l'ensemble des fonctions partageables du programme principal, utilis�e pas les deux premiers �l�ments.
- Tous les symboles sont export�s par d�faut dans un .so (je crois qu'il y a moyen que ce ne soit pas le cas) alors qu'une DLL doit d�clarer quel symboles seront export�s. On r�sout g�n�ralement �a par l'interm�diaire d'une #define qui permet � partir d'un m�me fichier .h de d�clarer un symbole comme �tant import� d'une autre DLL ou export� de la DLL courante (ou rien pour les .so)
- Les fonctions � utiliser pour manipuler ces biblioth�ques ne sont pas les m�me (dlopen/LoadLibrary...)
- Je suis certain d'oublier des points
Partager