Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3233 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Passage de données à une DLL C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Passage de données à une DLL C++

n°465221
Piemur2000
Posté le 22-07-2003 à 19:38:09  profilanswer
 

Bonjour,
 
J'ai un petit probleme, je dois passer des tableaux de données à une Dll ecrite en C++ mais je n'arrive pas à retrouver les bons nombres.
Voila le prototype de la fonction ds la Dll :

Code :
  1. int __stdcall EnvoiDonnees(int taille, double *X, double *Y);


et voila comment je l'ai declaré dans VB :
 
Public Declare Function DllEnvoiDonnees Lib "Communication.dll" Alias "EnvoiDonnees" (ByVal Taille As Long, ByRef X() As Double, ByRef Y() As Double) As Long
 
Il recupere la taille correctement mais il recupere n'importe quoi au niveau des tableaux.
 
J'ai aussi un autre probleme avec une autre fonction de la Dll. Ca me fait Runtime error Floating point not load. Je ne comprend pas parce que c'est à peut prés la meme fonction.

Code :
  1. int __stdcall EnvoiDonnees2(int taille, int Nom, double *Temps, double *X, double *Y)


et en VB :
Public Declare Function DllEnvoiDonnees2 Lib "Communication.dll" Alias "EnvoiDonnees2" (ByVal Taille As Long, ByVal nom As Long, ByRef Temps() As Double, ByRef X() As Double, ByRef Y() As Double) As Long
 
 
Merci

mood
Publicité
Posté le 22-07-2003 à 19:38:09  profilanswer
 

n°465316
karlkox
Posté le 22-07-2003 à 22:04:51  profilanswer
 

Code :
  1. int __stdcall EnvoiDonnees(int taille, double *X, double *Y);

 
 

Code :
  1. Public Declare Function DllEnvoiDonnees Lib "Communication.dll" Alias "EnvoiDonnees" (ByVal Taille As Long, ByVal X As Double, ByVal Y As Double) As Long


 

Code :
  1. call DllEnvoiDonnees(m_dwTaille, m_sngX(0), m_sngY(0) )


 

Code :
  1. int __stdcall EnvoiDonnees2(int taille, int Nom, double *Temps, double *X, double *Y)


 

Code :
  1. Public Declare Function DllEnvoiDonnees2 Lib "Communication.dll" Alias "EnvoiDonnees2" (ByVal Taille As Long, ByVal nom As Long, ByVal Temps As Double, ByVal X As Double, ByVal Y As Double) As Long


 
Je n'ai pas testé mais c'est comme ca que je ferais.

n°465606
Piemur2000
Posté le 23-07-2003 à 11:31:18  profilanswer
 

Non ca ne marche pas, il me demande un seul double quand je fais ca...

n°465796
karlkox
Posté le 23-07-2003 à 14:24:28  profilanswer
 

Non, il ne demande pas UN SEUL double, mais VB passe les tableau par adresse, donc si tu donnes le premier indice du tableau, c'est bon ... J'ai toujours fait comme ca (avec les mêmes prototes que toi) et ca a toujours fonctionné.


Message édité par karlkox le 23-07-2003 à 14:25:04
n°465912
Piemur2000
Posté le 23-07-2003 à 15:42:23  profilanswer
 

karlkox a écrit :

Non, il ne demande pas UN SEUL double, mais VB passe les tableau par adresse, donc si tu donnes le premier indice du tableau, c'est bon ... J'ai toujours fait comme ca (avec les mêmes prototes que toi) et ca a toujours fonctionné.


 
J'ai essayé de mettre les proto que tu as dis et d'appeler la fonction comme ca :

Code :
  1. Dim TabX() As Double
  2. Dim TabY() As Double
  3. DllEnvoiDonnees(taille, TabX(0), TabY(0))


 
mais ca plante pendant l'appel de la Dll... Je pense pas que ca vienne de la Dll pke je l'ai deja testé.

n°465916
Piemur2000
Posté le 23-07-2003 à 15:46:04  profilanswer
 

Ah c bon, j'ai trouvé. Il faut mettre ByRef X()... et passer X(0).
 
Merci  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Passage de données à une DLL C++

 

Sujets relatifs
[SGBD] Base de données sans serveur ?[VBA]Ajout de bouton dans la barre d'outils
[VBA] Comment remettre une liste box à 0[DLL] Prototype des fonctions exportées
référencer une DLL créée en Delphi?Passage de parametres a une form...
Bouton parcourir en VBA (pour Access)de l'AS400 (fichier .tto) vers VBA (Excel)
placé un element sous plusieurs catégorie dans une base de donnéésformulaire => données envoyés à fonction php ?
Plus de sujets relatifs à : [VBA] Passage de données à une DLL C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR