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

C++ Discussion :

DLL c++ sous VBA


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 21
    Points : 11
    Points
    11
    Par défaut DLL c++ sous VBA
    J'ai un vrai problème!!

    Quelqu'un pourrait-il m'expliquer comment passer un tableau dans VBA en argument d'une DLL et comment faire en sorte de recuperer un tableau comme valeur de retour d'une DLL.

    En gros dans la definition de ma DLL en C++ comment faire pour que la DLL prenne un tableau vba en argument et renvoie un tableau vba

    et du coté de vba comment faire pour mettre en argument dans la DLL un tableau et recuperer un tableau??

    J'ai essayé mille fois ça marche pas!!

    dans ma DLL j'ai écrit

    double* __stdcall Madll(long* tableau)
    {
    double* tabretour=new..... ;
    etc etc
    return tabretour ;
    }
    et en VBA

    declare fonctDLL lib "Madll.dll"(byref tableau() as long)
    ...
    dim vecteur() as double
    dim tableau() as long
    tableau(0)=...
    tableau(1)=...
    etc
    vecteur=fonctDLL(tableau)
    et ça plante

    de meme vecteur=fonctDLL(tableau(0))
    ça ne marche pas non plus!!!

    comment faire!!!

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    Essaie avec les SAFEARRAY.

    Par contre, je ne pense pas que tu puisses retourner à VB un SAFEARRAY alloué dans la fonction...

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 21
    Points : 11
    Points
    11
    Par défaut tableau en valeur de retour
    Dans ce cas comment je fais alors pour recuperer un tableau en sortie?

    a supposer que mon code C++ donne en sortie un double*

    comment je peux affecter ce pointeur(l'adresse) à une variable dans vba?

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    Je doute fort que tu puisses utiliser directement un double* en VBA.
    Tu peux peut-être essayer en retournant un SAFEARRAY de doubles et en fournissant également une fonction pour le détruire, mais même ça je ne suis pas certain que ça marche.

    Edit: Y'a des chances que ça marche, en fait.
    Voir peut-être du côté de SafeArrayCreate()...


    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SAFEARRAY * CreateSafeArrayDoubles(unsigned long size)
    {
    	SAFEARRAYBOUND bounds[1];
     
    	bounds[0].lLbound = 0;
    	bounds[0].cElements = size;
     
    	return SafeArrayCreate(VT_R8, 1, bounds);
    }

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589

Discussions similaires

  1. probleme de dll sous vba
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/05/2007, 11h01
  2. [D8] Utilisation dll D7 sous D8
    Par smyley dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 01/11/2004, 12h28
  3. Réponses: 8
    Dernier message: 07/10/2004, 12h08
  4. (VBA-A] Requete access sous VBA
    Par vanima dans le forum VBA Access
    Réponses: 12
    Dernier message: 20/07/2004, 17h07
  5. Syntaxe PARAMETERS pour requête sous VBA
    Par GAGNON dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/11/2003, 12h39

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