Utiliser une dll activex sans l'enregistrer [Résolu]

Signaler
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Messages postés
11
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
24 novembre 2008
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
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 !!!
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
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...
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
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 !
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
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
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
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
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
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
Messages postés
11
Date d'inscription
mardi 24 juillet 2007
Statut
Membre
Dernière intervention
24 novembre 2008

je ne sait pas comment crées skin pour mon projet d'une maniére simple