Avoir 2 dll qui portent le même nom

cs_christophe33 Messages postés 5 Date d'inscription vendredi 24 mars 2006 Statut Membre Dernière intervention 16 juillet 2007 - 1 juil. 2007 à 14:00
cs_christophe33 Messages postés 5 Date d'inscription vendredi 24 mars 2006 Statut Membre Dernière intervention 16 juillet 2007 - 15 juil. 2007 à 11:32
Bonjour,

J'ai un programme principal qui appelle une dll activex écrite pour piloter Word ou une dll écrite pour piloter OpenOffice Writer. Suivant le poste, c'est soit l'une ou l'autre dll qui est installée. Les 2 dll portent le même nom et ont les mêmes API. De cette manière tout est transparant pour le programme principal. Par exemple, dans le programme principal, on aura :

Dim monDocument as unDocument
Set monDocument = new unDocument
monDocument.ouvrir(unFichier)
...

Si le poste est équipé de Word, c'est la dll Word qui sera installée et instanciée. Si le poste est équipé d'OpenOffice, c'est la dll OpenOffice qui sera installée et instanciée. Sans que le programme principal ne soit adapté pour l'un ou l'autre cas.

Mon souci, c'est que VB ne propose de créer que des dll ActiveX qui doivent être référencées dans le projet VB. Et Je ne veux pas avoir 2 projets VB pour le programme principal, l'un pour la dll Word, l'un pour la dll OpenOffice Writer.

Quelqu'un a-t-il solution à ce problème?

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 juil. 2007 à 14:50
Une piste pêut-etre, serait de faire une seule dll capable de gérer les 2 suites. C'est la dll qui ferait la différence suivant l'appli installée.

Ex : au démarrage de la dll, tu détermine quelle suite est installé et tu met à jour une varibale globale de la dll. Ensuite dans chaque fonction de la dll, tu met le code pour chaque suite en jouant sur ta variable globale pour ensuite n'executer que le code de la suite installée.

Autre point, comment gere-tu le cas ou les 2 suites sont installées sur la machine comme sur mes PC perso et travail, par exemple ?

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
1 juil. 2007 à 14:51
Salut,
Pourquoi ne pas avoir simplement un paramètre que l'utilisateur peut choisir décidant si il veut travailler avec Office ou Open Office ?
Sinon fais simplement un choix dans l'installateur, tu possèdes tes deux dll dans ton archive d'installation ou dans un dossier avec des noms différents, puis lors de l'installation tu copie celle que l'utilisateur veut avec le nom final...

Julien.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
1 juil. 2007 à 15:24
la solution est de mettre les deux dll dans des dossiers separe
puis de charge la DLL choisi en fonction du dossier.

par exemple :

PlugIns/OpenOffice/MaDll.dll

ou

PlugIns/Word/MaDll.dll

@+

E.B.
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
1 juil. 2007 à 15:43
Quelle différence avec deux noms différents ?

<hr width="100%" size="2" />Julien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_christophe33 Messages postés 5 Date d'inscription vendredi 24 mars 2006 Statut Membre Dernière intervention 16 juillet 2007
15 juil. 2007 à 11:32
Bonjour, j'ai suivi ton idée.

je suis parti d'un source unique avec une option de compilation conditionnelle. De cette manière, je crée une dll pour Word et une dll pour OpenOffice.org.
Suivant les postes, c'est l'une ou l'autre qui est installée. Pour le programme principal tout est transparant.

Merci.
0
Rejoignez-nous