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 :

Appel Dll Ecrite en C++


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Par défaut Appel Dll Ecrite en C++
    Voilà, j'ai à nouveau un problème avec des dll.

    J'ai fait une dll en C++ et je dois l'appeler à partir de mon programme VB.

    J'ai bien utilisé __stdcall dans ma dll C++.

    J'ai déclaré ma fonction par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Sub GenererImgVoronoiAlea Lib "FortuneC++Dll.dll" (nbGrain As Long, taille As Long, nomFichier As String)
    Mais lorsque j'execute mon programme VB, il me dit que la fichier de la dll est introuvable alors qu'il est bien là!!!
    J'ai le même problème en créant l'executable.

    Au secours, aidez-moi

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Par défaut
    Il semblerai que les dll et VB6, ça ne soit pas vraiment au point vu tous les messages sur le forum. En fait, les messages d'erreur ne sont pas du tout explicites!!!

    J'ai voulu appeler une dll Fortran à partir de mon code VB, le message d'erreur était Fichier.dll introuvable alors qu'il était bien là. En fait c'est une autre dll qu'il ne trouvait pas. J'ai du essayer sous .net pour savoir exactement ce qui n'allait pas!

    Pour ma dll en C++, je l'ai tester en C++ et ça marche, c'est juste l'appel à partir de VB qui ne va pas

  3. #3
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Déjà les noms de fonctions avec des "+-*.-" etc, je ne pense pas que ce soit génial
    sinon, où se situe ta librairie ?
    VB comme la plupart des programmes utilise les variables d'enrironnement :
    - voir environ("PATH") ou GetEnvironmentVariable
    - ou ajouter une variable manuellement :
    clic droit sur Poste de travail, propriétés > Avancé > Variables d'environnement.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Par défaut
    Alors les ++ c'est pas dans les nom de fonction,c'est le nom du fichier et ce n'est pas ça car j'ai essayé en mettant un nom sans +*..., et ça ne marche pas non plus.

    Pour ce qui est de l'endroit où j'ai mis ma dll, c'est dans un repertoire dll et j'ai rajouter ce repertoire dans le path à l'intérieur de mon code. En plus ça ne peut pas être ça car j'ai une autre dll dans ce même repertoire et elle, elle marche très bien!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Par défaut
    Bon finalement jai trouvé le problème, c'est une serie de dll qui lui manquait!!! Heureusement que j'ai trouvé par moi meme de quelles dll il s'agissait!!! COmme s'il ne pouvait pas le dire!

    Bref maintenant j'ai un autre problème, il me dit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Point d'entrée d'une dll introuvable
    Qu'est ce qui ne va pas!!

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Par défaut
    Finalement, j'ai trouvé mon problème. Mais j'en ai encore un autre!!

    En fait, je suis revenu à une dll toute simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    # define DLLIMPORT extern "C" __declspec (dllimport)
     
    DLLEXPORT __stdcall long Identite(long x){
      return x;  
    };
     
     
    //Fichier .def
    EXPORTS
    	Identite@4 @ 1
    	Identite = Identite@4 @ 2
    J'ai presque réussi à l'appeler correctement dans VB si ce n'est que visiblement les paramètres non sont pas passés correctement.

    Par exemple, si j'appelle ce code dans VB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'Declaration
    Private Declare Function Identite Lib "SimpleDll.dll" (x As Long) as Long
     
    'Appel
    MsgBox Identite(5)
    La valeur donnée est 1242460!!!

    Vous avez une idée ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Par défaut
    C'est bon, j'ai trouvé moi même la réponse. En fait, il fallait passer les paramètres par Valeur!!

    Ca marche enfin!!!

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 23
    Par défaut
    ce sarit pas mal de penser a mettre le tag résolu.

    (petit boutton en bas à gauche des message)

    merci

    cordialement

    XHY65

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/05/2008, 15h01
  2. [WinService][C#] Comment appeler dll C/C++ ?
    Par avrama dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/01/2006, 12h05
  3. appel DLL C++ en Delphi (pb avec type)
    Par fkerbourch dans le forum Langage
    Réponses: 7
    Dernier message: 11/07/2005, 17h31
  4. [MFC]ActiveX + appel DLL
    Par Xeron dans le forum MFC
    Réponses: 4
    Dernier message: 22/06/2005, 16h39
  5. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15

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