Impossible d'utiliser winsock chez un client

Résolu
Signaler
Messages postés
16
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
24 mars 2009
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
Bonjour,

J'utilise winsock.ocx dan un de mes programmes. D'habitude, je le fournis dans le dossier avec mon .exe, mais cette fois ci, ça ne fonctionne pas.

Le client recoit le message "System error &H8007007E (-2147024770). le module spécifié est introuvable". J'ai essayé de lui envoyer un faux, programme sans référence a winsock.ocx..Ca marche.

Je lui ai demandé de copier winsock.ocx dans system 32, même erreur.

J'ai l'impression que le programme ne sait pas où trouver winsock.ocx. Comment faire pour le detecter, et que ce soit transparent pour l'utilisateur (cad automatiquement) ?

Merci bien.

5 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Combien de fois faudra-til le dire ?

Avec VB6, fournir un executable, fournir les dll et les ocx utilisés par cet executable ne suffit pas pour que le tout soit fonctionnel.

En effet, tout ce qui est objets COM, dll ActiveX, ocx ainsi que toutes leurs dépendances doivent non seulement etre présentent sur la machine, mais aussi etre dûment enregistrer dans le système via la base de registre.

D'ou la necessité de faire des packs d'installation et de faire une installation digne de ce nom sur la machine.

Pour résoudre ponctuellement ton problème, copie l'ocx dans c:\windows\system32, ouvre le menu démarrer, choisit Executer, tappe regsvr32 winsock.ocx et valide. Une boite de dialogue doit te dire que l'enregistrement est correct.

Pour ne plus avoir ce problème pense à faire un pack d'installation de ton application, et fait-là installer par tes clients comme n'importe quel logiciel du commerce.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Le pack d'installation EST la solution.
Ca a fonctionné sur d'autres machines non parce que tu as mis le fichier à côté de l'EXE, mais parce que l'OCX existait déjà sur la machine ET qu'il avait été régulièrement enregistré dans la base de registres.
En effet, cet OCX est fréquemment utilisée par tout type d'autres programmes et, il me semble, installé par défaut avec les versions Pro de Windows XP.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
ce pack execute tout simplement la commande que je t'ai indiqué mais sur chacun des composants le necessitant, et ils peuvent etre très nombreux.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
16
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
24 mars 2009

Merci pour ta réponse.

Si quelqu'un a une autre solution transparente pour l'utilisateur (une ligne de code ?), je suis tout ouïe.

Ce que je ne pige pas, c'est que j'ai déjà eu ce problème, mais mettre winsock.ocx à coté de l'exe l'a résolu. Une idée du comment du pourquoi ?
Messages postés
16
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
24 mars 2009

Hmm, à la limite, faudrait trouver ce que ce pack change dans la base de registre pour enregistrer le composant.

Merci de votre aide à tous les deux.