Manque de dll pour ActiveX, que faire ?

Signaler
Messages postés
13
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
7 juin 2006
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour,

J'utilise un ActiveX di6flood (c'est une jolie progress bar, ou on peut paramétrer les couleurs). Mais le probleme c'est que ce controle n'inclut pas les dll de VB6. Or j'aimerai exporter mon exe sur un autre ordi(n'ayant pas VB6 évidemment).

De plus je ne veux pas modifier le C/.../system32 de l'autre ordi. Je sais que je peux mettre ma dll dans le dossier ou se situe l'activeX( ou alors c'est dans le dossier ou se trouve l'exe ?). Mais je ne sais pas quel(s) fichier(s) dll mettre...

Merci de votre aide

19 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Un ActiveX, tout comme un prog VB6 ou .NET, pour être déployé, ca nécessite un setup pour être sûr qu'il fonctionne partout.



Va voir mes tutoriaux sur www.ProgOtoP.com pour savoir comment faire un setup InnoSetup sans taper la moindre ligne de code.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
Messages postés
13
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
7 juin 2006

Merci mais je m'explique mieux. Ce n'est pas moi qui est réalisé cet activeX, je me contente de l'utiliser. Donc ce setup dont tu me parles ne me sert pas, vu que je n'ai pas ttes les dll nécessaire à l'ActiveX.
0
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Ben si tu arrive à l'installer et l'utiliser correctement sur ton pc,
tu dois pouvoir faire un setup pour qu'il s'installe correctement avec
ton prog qui l'utilise !



Par contre, fait attention aux licences, tu peux avoir le droit de
l'utiliser mais pas de le distribuer, que ce soit dans un but
commercial ou non ! Et là, il faut voir avec l'auteur de l'ocx.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,
que la dll (ou autre) te soit propre ou non, les copier dans le dossier de l'exe (première réponse) n'est parfois pas suffisant.
utiliser un empaqueteur tel que celui que Dark te propose (connu, et qu'il va bien falloir un jour que j'essaie) est sans doute la solution la plus facile.
chaque exe à ses objets, on ne peut pas te faire une liste exacte ;)
(çà veut dire aussi que le souci vient de l'exe, non pas de l'ActiveX)

Dark, mis à part.... pour les droits de distribution etc, sais-tu comment (ou si), à part en l'écrivant en fichier joint, rendre un OCX/DLL non-redistribuable.....

++
PCPT
0
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Il me semble qu'on peut le définir avec VB pour un projet Usercontrol
=> pour des ocx, il est possible de demander un numéro de licence.
Je ne sais pas si ca correspond à cà les fameux message comme quoi on
n'a pas le droit de distribuer tel ou tel composant... Je ne me suis
jamais réellement posé la question car pour l'instant, j'ai toujours
développé des composants réutilisable et distribuable par tous !


Mais je pense que la MSDN doit bien avoir de la doc là dessus...


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
Messages postés
13
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
7 juin 2006

Tout dabord, merci de vos rep.
Je pense changer de composant car je suis pas trop doué en info.

Une derniere question: savez vous ou je pourrais trouver un activeX autonome(qui ne nécessite aucune autre dll et qui pourra marcher sur tous les ordis) et libre de droit. Ce controle doit ressembler à une progress bar ou une jauge.
Un activeX qui permet de montrer un niveau. Et un minimum joli car la progress bar de VB6 ne permet meme pas de changer la couleur. L'idéla serait de pouvoir choisir 2 couleurs. L'une pour avant le niveau de la jauge et une autre pour après.

Merci
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
ok merci ;)
PCPT
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
c'est ton exe compilé qui a besoin de dll.
créé un nouveau projet, rien dedans, compile le, et tu auras les mêmes problèmes (alors que vide) pour l'executer sur un poste sans VB.

Dark t'a dit comment démarcher. des contrôles, tu en trouveras des tonnes ici, mais toujours ne fonctionnant qu'avec les DLL fournies avec VB (logique)

PCPT
0
Messages postés
13
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
7 juin 2006

Non mon projet (quand je retire le controle en question) marche très bien sur les pc n'ayant pas VB6(tests faits sur plusieurs PC).
Donc je comprends pas.
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
alors en principe, c'est juste l'ocx qu'il faut enregistrer

regsvr32.exe -c DRIVE\CHEMIN_COMPLET\di6flood.ocx
pareil pour les DLL qu'il nécessite éventuellement....

PCPT
0
Messages postés
13
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
7 juin 2006

Il faut l'enregistrer sur les post ou je met mon programme ? Si oui peut on automatiser cette tache? Tous les ordis ont le programme regsvr32.exe ?

Merci pour le temps passé sur mon cas.

PS: je ne sais pas les dll dont a besoin mon ocx (c'est une de VB mais j'en sais pas plus)
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
oui, sur les postes qui te posent problème.... (forcément)

automatiser, oui, ou tu fais un Batch, et donc poste par poste, ou tu utilises une technique extrêmement difficile, à savoir trouver des cylindres de bois, pointus des 2 cotés (communément appelés "KurDen"), tu les places sous tes paupières, pour ainsi relire le post de Dark

(pour savoir quelle DLL est nécessaire, une fois l'ocx enregistré, tu auras un message d'erreur avec le nom de la première DLL manquante)

PCPT
0
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Laisse toi imprêgner par le côté obscur de la force, et sombre dans la haine et la souffrance jeune padawan.



Il existe un moyen plus fiable et simple que le batch : enregistrer
l'ocx dès le lancement de ton prog. Dans un Sub Main, tu y lance le
regsvr32 en utilisant la fonction de VB Shell. Ainsi, plus de problème
d'enregistrement.



RegSvr32 est un programme installé par défaut avec Windows, il permet
d'enregistrer des dll activeX dans le registre, ou de les supprimer.



Pour avoir une éxécution silencieuse, utilise l'option /s.



Donc en gros, ca donne cà (dans un module) :



Public Sub Main()



Shell("RegSvr32 /s CheminDeLaDll.dll")

Form1.Show



End Sub


Il faut bien entendu que la Sub Main soit la fonction d'entrée de ton
programme (tu peux le définir dans les options de ton projet).


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
MOUAAHAHHAHAAA !!
(rire ténébreux)

pour Shell, j'avais déjà lu à droite à gauche. mais le problème (+/-) est que tu la ré-enregistres à chaque chargement...
c'est pas un peu bourrin?

PCPT
0
Messages postés
13
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
7 juin 2006

Le soucis c'est que je ne connais pas la dll manquante a mon activeX. Quand je l'execute sur un autre pc y'a écrit: "erreur d'execution '339' le composant 'di6flood.ocx' ou une de ses dépendances n'est pas correctement enregistré."

Je trouve également cela un peu bourré de recharger à chque fois la dll, non ?
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
Sephy77,
je sais pas si tu lis les réponses qu'on te donne....
tu as là pas mal de solutions.
là, ton ocx n'est pas enregistré.

Dark te propose soit de "paquager" ton projet complet avec innosetup, soit d'ajouter un module à ton projet, dans lequel tu créés la procédure "Sub Main" qui enregistre automatiquement l'OCX. procédure que tu mets en démarrage de ton projet, au lieu de ta Form Principale
et moi, pour test, je te dis de l'enregistrer manuellement (c'est à dire de taper en commande la même ligne que Dark à écrit dans le module), pour voir ce qu'il manque ensuite.
si tu veux faire le test de suite, sur ton PC, il te suffit de taper
regsrv32.exe -u blabla\di6flood.ocx
ceci va la désenregistrer. fait ensuite ton module. tant que tu auras ton message d'erreur sur TON poste, c'est que tu as mal placé les KurDen....

Dark,
je fais un petit projet qui nécessite une configuration (ini) obligatoire.
je fourni le fichier avec une donnée vide. au SubMain, si donnée vide, c'est que 1er enregistrement, donc j'enregistre dll/ocx et j'ouvre la form config. sinon, j'enregistre pas et form principale....

++
PCPT
0
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Non ce n'est pas si bourrin que cà : ca permet par exemple d'être sûr
que la dll soit enregistrée, avec sa dernière version surtout...


Sinon, si vous voulez vraiment ne l'enregistrer qu'une seule fois, voir ici :

http://www.vbfrance.com/forum.v2.aspx?id=48472



Et oui, c'était à l'époque où je débutais en VB !


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
Messages postés
13
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
7 juin 2006

Merci j'ai enfin réussi.
il fallait enregistrer l'activeX.
Je pensais que le fait de le mettre au bon endoit il était directement détecté. Quand on possède VB, cest VB qui se charge de l'enregistrer alors ?

Encore merci à vous.

Désolé d'avoir fait le boulet
0
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
non, il s'enregistre quand tu l'ajoutes en composant.
donc oui, l'un dans l'autre, mais 3 composants dans le répertoire de ton projet, si un seul utilisé (donc dans le projet) un seul enregistré...

PCPT
0