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 :

Problème DLL en VB6 ?


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Points : 95
    Points
    95
    Par défaut Problème DLL en VB6 ?
    Bonjour
    Je suis débutant en VB6, mon problème c’est que je veux utiliser une DLL (implémentée en VC++) dans mon application VB6, j’ai déclaré une méthode, lorsque je fait l’appelle j’ai l’erreur suivante :
    « erreur d’exécution n 453
    Point d’entre ma_méthode d’une DLL introuvable dans ma_lib.dll »
    Ghazi Sabri IT's Fun.

    http://dzit.wordpress.com

  2. #2
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    je suis utilisateur de vb5 mais je pense que c'est la meme dans VB6.
    as tu penser dans tes references projet a selectionner la dll que tu veux utiliser?

  3. #3
    Membre régulier Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Points : 95
    Points
    95
    Par défaut même !
    Oui j'ai ajouter la DLL dans les references ?
    mais le problème persiste ?
    Ghazi Sabri IT's Fun.

    http://dzit.wordpress.com

  4. #4
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 849
    Points
    849
    Par défaut
    Salut zambizi,

    Pour utiliser une DLL en VB6, il y a deux possibilités :

    1. S'il s'agit d'une DLL conventionnelle avec une table d'exportation, tu utilises le mot clé "Declare" pour déclarer la ou les fonctions que tu souhaites appeler.

    2. S'il s'agit d'un serveur COM, tu le registres (regsvr32 <dll path>) et tu ajoutes une référence dans le projet.

    Je pourrais peut-être t'aider d'avantage, si tu me donnais plus d'information sur la dll et comment tu souhaite l'utiliser.

    Jérôme

  5. #5
    Membre régulier Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par ptah35 Voir le message
    2. S'il s'agit d'un serveur COM, tu le registres (regsvr32 <dll path>) et tu ajoutes une référence dans le projet.

    Je pourrais peut-être t'aider d'avantage, si tu me donnais plus d'information sur la dll et comment tu souhaite l'utiliser.

    Jérôme

    Salut Jérôme !

    j’ai une DLL qui contient un objet COM, j’ai enregistré le serveur par la commande
    Regsvr32 ma.DLL
    Et dans mon application VB6 j’ai fait ça :
    Ajouter la DLL aux références
    Apres j’ai essayer d’instancier un objet (la déclaration de ce dernier est faite dans la DLL) comme suit :
    Dim myOb as New MonObjet

    Quand je fait une appelle a l’une des méthodes de cet objet comme suit
    X = myOb.init (var1,var2)

    J’ai eu l’erreur suivante (Erreur de compilation fonction ou variable attendue)
    Ghazi Sabri IT's Fun.

    http://dzit.wordpress.com

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 849
    Points
    849
    Par défaut
    Corrige-moi si je me trompe mais tu n'as plus l'erreur 453, n'est-ce pas?

    Ton problème semble venir du fait que la méthode init n'est pas une fonction mais une procédure, tu devrais donc l'appeler ainsi :

    Call myOb.init (var1,var2)

    Si tu as écris toi-même la fonction init en C++, tu as effectivement écrit une fonction qui renvoie un HRESULT mais quand VB appèle un méthode COM, il attend obligatoirement un HRESULT en retour et si sa valeur est différente de S_OK, il lève une exception. Si tu veux écrire une méthode qui soit une fonction pour VB, tu dois écrire une fonction qui renvoie un HRESULT comme pour une procédure mais dont le dernier argument est un pointeur sur la valeur de retour de la fonction VB, et déclarer cette argument avec les attributs [out, retval] dans l'IDL.

    J'espère avoir été clair. N'hésite à me le dire si ce n'est pas le cas.

    Jérôme

  7. #7
    Membre régulier Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Points : 95
    Points
    95
    Par défaut MERCI
    Merci Jérôme !
    Non maintenant je n’ai pas l’erreur 453 !
    En faite je dois ajouter le mot clé « Call » !

    Merci beaucoup Jérôme ! Et bonne journée !
    Ghazi Sabri IT's Fun.

    http://dzit.wordpress.com

  8. #8
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 849
    Points
    849
    Par défaut
    Content d'avoir pu t'aider

    N'oublie pas de signaler le problème comme résolu si tel est le cas.

  9. #9
    Membre régulier Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Points : 95
    Points
    95
    Par défaut MERCI

    j'ai oublié de le metre comme étant resolut!
    Ghazi Sabri IT's Fun.

    http://dzit.wordpress.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème dll activex VB6 VB.NET via URL et JAVA
    Par lmyfgame dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 06/02/2009, 10h23
  2. VB6 Problème dll
    Par erwan.bodere dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/07/2006, 16h52
  3. [VBA] Problème avec composant VB6
    Par Diablo_22 dans le forum Général VBA
    Réponses: 8
    Dernier message: 16/03/2006, 20h41
  4. Probleme: recompilation DLL en VB6 impossible
    Par balibo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 04/11/2005, 10h16
  5. Probléme DLL
    Par etranger dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2005, 16h39

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