IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Utiliser une DLL et OCX sans la copier dans WINDOWS


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : avril 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Utiliser une DLL et OCX sans la copier dans WINDOWS
    Bonjour à tous,

    J'ai fait pas mal de recherche sur mon problème sans y trouver de solution et comme je suis autodidacte je n'ai pas des bases très solides malheureusement.

    J'ai programmé un soft sur VB6 qui utilise un graphique pour lequel mschart.ocx et vb6fr.dll sont nécessaires. Sauf que j'aimerais pouvoir utiliser ce soft sur des PC pour lesquels je n'ai pas le droit admin et donc pour lesquels je ne peux pas copier ces deux fichiers dans le répertoire de C:\Windows.

    J'aimerais donc savoir s'il y a un moyen pour faire appel à ces fichiers sans avoir à les copier et à donc utiliser les droits administrateurs. A cause de ce problème j'avais envisagé de migrer tout le soft sur VB.NET mais ça serait un très/trop gros chantier.

    Si vous avez une solution à ma problème ça me soulagerait grandement !

    Pablo

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    juillet 2009
    Messages
    2 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2009
    Messages : 2 318
    Points : 5 498
    Points
    5 498
    Par défaut
    Bonjour et BIENVENU sur DVP;

    Tu pourras les copier dans le dossier de destination de ton soft.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : avril 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour l_autodidacte et merci de m'accueillir !

    Merci de ta réponse rapide. Je viens donc d'essayer cette proposition. Je copie donc le .exe, le .ocx et le vb6fr.dll dans un même dossier sur le bureau du PC sur lequel je veux tester le soft. A l’exécution, j'ai le message classique "le composant 'MSCHRT20.OCX' ou une de ses dépendances n'est pas correctement enregistré : un fichier est absent ou incorrect".

    Quand j'ai les droits administrateurs le problème est résolu en copiant l'ocx et la dll dans C:\Windows\SysWOW64 mais juste en les mettant dans le même dossier que le .exe ça ne fonctionne pas.

    Est-ce que tu as une idée ?

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    5 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 5 422
    Points : 13 151
    Points
    13 151
    Par défaut
    Salut

    "le composant 'MSCHRT20.OCX' ou une de ses dépendances n'est pas correctement enregistré : un fichier est absent ou incorrect".
    Comme dit par l_autodidacte (), il faut placer tous les composants et les dépendances dans le dossier ou se trouve l'exécutable, MSCHRT20.OCX utilise peut être une dépendances que tu n'as pas mis dans le dossier.

    De mon humble avis, fait un package comme une installation classique, repaire dans le dossier du package/support tous les fichiers DLL, OCX, TLB ....., c'est ces fichiers qui doivent être dans le même dossier que ton exécutable.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : avril 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour et merci à toi aussi ProgElecT !

    J'ai donc un peu cherché à voir comment appliquer ta solution.
    - Donc j'ai utilisé l'assistant empaquetage & déploiement de VB6
    - Sélectionner mon .vbp
    - Cliquer sur Empaquetage

    Mais je tombe sur le message d'erreur suivant :
    "Une erreur inattendue numéro 80040154 s'est produite : Classe non enregistrée"
    J'ai essayé de trouver d'où venait l'erreur et je suis même retombé sur d'anciens messages à toi mais ça ne m'a pas permis de résoudre le problème.

    J'ai l'impression que c'est encore lié à mon ocx (mschart20.ocx) car si je l'enlève de C:\windows\SysWOW64 je n'ai pas le même message d'erreur. Il me dit qu'il ne peut charger une form et dans le fichier log j'ai :
    Ligne 1733: la propriété OleObjectBlob dans MSChart1 n'a pas pu être définie
    Ligne 1733: Impossible de charger le contrôle MSChart1

    Il s'agit donc du graphique qui est géré par MSChart.ocx ...

    Est-ce que tu pourrais m'éclairer ? Je sens que ça avance dans le bon sens

    Pablo

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    5 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 5 422
    Points : 13 151
    Points
    13 151
    Par défaut
    Salut

    Une erreur inattendue numéro 80040154 s'est produite : Classe non enregistrée
    Dans se cas, enregistre le avec regsvr32, fais une session MSDOS, tu te mets dans le dossier C:\WINDOWS\system32, et tu passe la commande:
    C:\WINDOWS\system32>regsvr32 c:/leDossierOuSeTrouveLexecEtLocx/mschart20.ocx.
    Par contre tu ne devrais pas supprimer l'OCX du dossier \SysWOW64, tu peux avoir 2 référencements pour un même OCX.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : avril 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Salut ProgElecT,

    Donc je suis sur W10 je lance l'invite de commande CMD
    Je change de répertoire : CD /D C:\WINDOWS\System32
    Je tape C:\WINDOWS\System32>regsvr32 C:\lerepertoiredemonexe\mschrt20.ocx
    Et là j'ai le message d'erreur suivant :

    "Echec du chargement du module C:\lerepertoiredemonexe\mschrt20.ocx

    Vérifiez que le fichier binaire est stocké à l'emplacement désigné par le chemin d'accès spécifié ou déboguez-le pour rechercher d'éventuels problèmes de fichiers .DLL binaires ou dépendants.

    Le module spécifié est introuvable."

    J'ai testé de changer de dossier pour un chemin plus court (même sur C:\ directement) mais ça me renvoie le même message d'erreur. Là pour le coup je ne sais vraiment pas quoi en penser. Est-ce que tu aurais encore une idée ?

    Par ailleurs le mschrt20.ocx est de nouveau présent dans le C:\WINDOWS\SysWOW64 quand je fais les manips.

    En tout cas merci du coup de main !

    Pablo

  8. #8
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    5 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 5 422
    Points : 13 151
    Points
    13 151
    Par défaut
    Re

    S'est on vraiment compris
    Pour registrer tu dois donner le chemin du dossier ou se trouve l'exécutable et l'OCX, non pas (comme dans mon exemple)
    regsvr32 C:\lerepertoiredemonexe\mschrt20.ocx
    regsvr32 chemin complet vers le repertoire de ton executable et ou se trouve l'OCx et nom du fichier à registrer
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : avril 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse malheureusement j'ai pas l'habitude de manipuler le registre et là je suis déjà perdu ...
    Je n'ai pas compris ton dernier message parce que j'ai l'impression d'avoir fait exactement la même chose.

    Quand tu marques ceci :
    regsvr32 chemin complet vers le repertoire de ton executable et ou se trouve l'OCx et nom du fichier à registrer

    C'est ce que je fais non ? mon mchrt20.ocx se trouve dans le même dossier que l'exécutable soit C:\lerepertoiredemonexe\
    Donc la commande ça serait : C:\WINDOWS\System32>regsvr32 C:\lerepertoiredemonexe\mschrt20.ocx ?

    J'ai également directement copié mschrt20.ocx dans le System32 et taper (en lisant que ça pourrait marcher)
    C:\WINDOWS\System32>regsvr32 mschrt20.ocx
    Mais cela ne fonctionne pas non plus ...

    Désolé j'ai un peu du mal !

  10. #10
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    5 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 5 422
    Points : 13 151
    Points
    13 151
    Par défaut
    Re

    lerepertoiredemonexe est vraiment le nom que tu as donné au répertoire ou se trouve l'exécutable et l'OCX et ses dépendances?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : avril 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Re
    Il s'agit juste du nom raccourci où se trouvent le vb6fr.dll le .exe et le mschrt20.ocx et aussi de tout le projet vb par ailleurs (avec toutes les frm et les modules). Le nom du répertoire n'est pas textuellement celui-ci : lerepertoiredemonexe, il suit en réalité toute l'arborescence. Il est donc beaucoup plus long.

    Est-ce que tu vois ce que je ne fais pas correctement ?

    Merci d'avance.

  12. #12
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    5 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 5 422
    Points : 13 151
    Points
    13 151
    Par défaut
    Re re re

    Une idée, si tu fais un raccourci de l'exécutable que tu places sur le bureau, cliques droit ==> Propriété ==> bouton Avancé... et là, cocher Exécuter en tant qu'administrateur ==> Ok, dans la fenêtre Propriétés de: .... cliquer le bouton Appliquer, fermer la fenêtre puis double-cliquer sur le raccourci, cala donne quoi ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : avril 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour ProgElecT,

    Je ne vois pas trop où tu veux en venir en fait. J'ai donc fait cela sur ma session de mon ordi perso pour lequel j'ai déjà les droits administrateurs. Et le programme s'est ouvert tout à fait normalement.

    De ce que je comprends depuis le début c'est que je dois trouver les dépendances de mschrt20.ocx et les mettre dans le dossier du .exe. Il y a-t-il une autre façon de faire que d'utiliser l'assistant empaquetage & déploiement de VB6 pour les trouver ?

    Merci de ta patience !

    Pablo

Discussions similaires

  1. Utiliser une DLL sans les headers
    Par Ange_blond dans le forum C++
    Réponses: 16
    Dernier message: 23/02/2009, 10h02
  2. Utiliser une DLL sans le .LIB dans Visual Studio 2005
    Par lekernel dans le forum Visual C++
    Réponses: 5
    Dernier message: 02/08/2007, 09h54
  3. Réponses: 7
    Dernier message: 13/01/2005, 11h30
  4. [DLL] utiliser une DLL a partir d' une DLL et un .def
    Par venomelektro dans le forum MFC
    Réponses: 9
    Dernier message: 07/12/2004, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo