Manque de dll pour ActiveX, que faire ?

Sephy77 Messages postés 13 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 juin 2006 - 10 août 2005 à 16:57
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 11 août 2005 à 22:42
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 août 2005 à 17:21
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
Sephy77 Messages postés 13 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 juin 2006
10 août 2005 à 17:25
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
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 août 2005 à 17:30
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 août 2005 à 21:41
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

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

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 août 2005 à 21:57
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
Sephy77 Messages postés 13 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 juin 2006
10 août 2005 à 22:04
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 août 2005 à 22:04
ok merci ;)
PCPT
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 août 2005 à 22:07
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
Sephy77 Messages postés 13 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 juin 2006
10 août 2005 à 22:19
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 août 2005 à 22:52
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
Sephy77 Messages postés 13 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 juin 2006
10 août 2005 à 22:59
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 août 2005 à 23:13
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
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 août 2005 à 08:02
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 août 2005 à 11:30
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
Sephy77 Messages postés 13 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 juin 2006
11 août 2005 à 12:21
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 août 2005 à 12:40
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
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 août 2005 à 14:10
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
Sephy77 Messages postés 13 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 7 juin 2006
11 août 2005 à 22:18
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 août 2005 à 22:42
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
Rejoignez-nous