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 utilisation DLL VC++


Sujet :

VB 6 et antérieur

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut Problème utilisation DLL VC++
    Bonjour,

    Je souhaite utiliser une DLL VC++ 6.0 à partir de mon application VB6, mais j'ai quelque problème.


    Voici les prototypes des mes fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    unsigned long __stdcall checksum(unsigned char * trame, unsigned long * crc_table, unsigned long start, unsigned long size)
    void __stdcall checksumTable(unsigned long * crc_table)
    void __stdcall Test(int * valeur)


    dans le fichier .h j'ai ajouté les déclarations suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern unsigned long __stdcall checksum(unsigned char *, unsigned long *, unsigned long, unsigned long);
    extern void __stdcall checksumTable(unsigned long *);
    extern void __stdcall Test(int * valeur);
    J'ai crée un fichier .def également pour l'exportation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    LIBRARY 	 "MyDll"
    DESCRIPTION  'Windows Dynamic Link Library'
     
    EXPORTS
    	; Explicit exports can go here
    	checksum		  @1
    	checksumTable	  @2
    	Test			  @3
    La DLL se crée bien sous VC++.

    Sous VB j'ai ajouté la déclaration suivante pour essayer la fonction Test qui est trés simple et se contente de fixer la valeur du paramètre passé en référence à 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare Sub Test Lib "MyDll" (ByRef Crc As Long)
    Appel de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim Crc As Long
        Crc = 0
        'Initialise la table des codes du Crc
        Test (Crc)
    La fonction passe mais la valeur de retour est systématiquement à 0.

    Des idées ou conseils sur l'utilisation des DLL VC++ en VB6 ?

    Merci d'avance.








    merci d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut
    Apprement cela passe mieux si l'on déclare une fonction et un paramètre par valeur.

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

Discussions similaires

  1. Problème utilisation Dll créée en delphi dans une appli VB6
    Par Djelangelo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/01/2011, 15h48
  2. Problème utilisation dll
    Par Schnapz dans le forum C++
    Réponses: 12
    Dernier message: 23/11/2010, 14h27
  3. Problème utilisation DLL Inpout32
    Par stephantasy dans le forum Général VBA
    Réponses: 7
    Dernier message: 23/03/2010, 18h27
  4. problème utilisation dll
    Par od.dev dans le forum Delphi
    Réponses: 13
    Dernier message: 09/01/2007, 13h51
  5. Problème utilisation DLL
    Par Tub-95 dans le forum MFC
    Réponses: 4
    Dernier message: 02/11/2005, 12h00

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