MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 2009
-
18 août 2006 à 18:03
tanabenezied
Messages postés11Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention24 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 ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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 !
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 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 ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 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)