Utiliser une dll activex sans l'enregistrer

Résolu
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 - 18 août 2006 à 18:03
tanabenezied Messages postés 11 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008 - 26 juil. 2007 à 19:28
Bonjour à tous,

Je suis sur un programme qui utilise des skins fait avec des dll.
Le problème, c'est que ces dll sont enregistrées pour être utilisées, mais ça pose problème car imaginez que y'ait 10 skins installées, ça fait 10 dll différentes enregistrées...
Enfin je voudrais eviter ça si possible, j'aimerais bien les utiliser sans qu'elles soient enregistrées.
Est-ce possible ?

Merci

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 août 2006 à 18:51
Avec les ActiveX, t'as pas le choix : il faut que les dll soient enregistrées pour t'en servir.

Mais bon, en même temps, windows n'en n'ai plus à une dizaine d'activeX près, y'a qu'à voir le nombre d'activeX dans le System32 !!!
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 août 2006 à 19:07
Non je ne pense pas, mais c'est quoi le problème au juste ?
C'est Windows qui gère les CLSID, et en théorie, il ne risque pas y avoir de pénurie de CLSID ! (en théorie !).

De plus, si tu compile tes dll en mode compatibilité binaire, toutes les versions de la dll d'un skin aura le même CLSID, donc pas d'anciennes dll non utilisées qui traînerais dans le registre...
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 août 2006 à 19:22
Tu peux très bien faire un RegSvr32 de ta dll lorsque tu en as besoin, puis un RegSvr32 /u dès que tu n'en a plus besoin.

Sache qu'une dll possède un nom, et les classes qui sont dedans en possède d'autres.
Donc ta dll ne rentrera en conflit que si une autre dll possèdant le même nom et le même nom de classe (ainsi que le même CLSID) que la tienne, ce qui est quasi impossible (vu le nombre de CLSID disponible déjà (codé sur 128 bits il me semble).

Enfin bon, fait comme tu le sens, mais je serais d'avis de les enregistrer une fois pour toute à l'installation de ton prog, et de t'en servir directement ! A la désinstall, tu les enlève et puis c'est bon.
Ce n'est jamais très bon de s'amuser avec l'enregistrement/désenregistrement de dll à chaque utilisation d'une dll !
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
18 août 2006 à 19:25
oui j'ai une idée...
un module global pour compter le nombre de forms initialisant l'inscription en registre, donc compteur + -.
regarde dans mes sources (skin B2), tu verras le fonctionnement. j'inscris mais ne désinscris pas, justement pour la raison évoquée ci-dessus.

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
3

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

Posez votre question
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
18 août 2006 à 18:54
Arf dommage,
Et si je désenregistre la dll à chaque fois et que je la ré-enregistre si on veut utiliser la skin, ça poserait pas de problème je pense ?

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
18 août 2006 à 19:10
salut,
si la skin est une dll, c'est faisable.
en ocx par contre, tu te retrouverais un moment (à la fermeture de l'appli par exemple, en mode conception donc en IDE) avec la dll désenregistrée et une erreur lors de l'affichage de la form. l'ocx ne sera pas repassé par son SubMain et donc ne rechargera pas ses dépendances dans le registre

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
18 août 2006 à 19:17
Ben le problème, moi je vois par exemple quand je programme, je veux ajouter une référence, je vois 4 réferences Skin1, Skin2 etc...
ça fait pas très pro "d'investir" le pc de l'utilisateur comme ça je trouve (j'aime bien avoir des programmes "discrets" ), après il peut se demander ce que c'est et tout, car Skin1 est un nom général pour un programme précis, ces dll ne serviront à aucun autre programme...
enfin je me dis que l'utilisateur classique ne verra pas la liste des dll installées sur son pc donc c'est vrai qu'il ne le verra pas...

PCPT > c'est une dll, tu as une idée ?

PS : je charge la dll dynamiquement, donc pas avec Projet>Références (car ce sont des skins)

Merci

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st
0
tanabenezied Messages postés 11 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
26 juil. 2007 à 19:28
je ne sait pas comment crées skin pour mon projet d'une maniére simple
0
Rejoignez-nous