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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] appels fonctions .dll C/C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] appels fonctions .dll C/C++

n°1426094
Kimilsung
Posté le 16-08-2006 à 15:34:42  profilanswer
 

J'ai réussi à créer une dll que j'appelle dans une fonction VBA. Mais il se passe un problème:  
'Erreur d'exécution 453'  
Point d'entrée introuvable

Pourtant j'ai bien mis #include <windows.h>, export
Comme Maximillion, je cherche un bon tutorial ou une explication bien fournie merci de ne pas m'indiquer :
http://rp.developpez.com/vb/tutoriels/dll/


Message édité par Kimilsung le 16-08-2006 à 16:04:30
mood
Publicité
Posté le 16-08-2006 à 15:34:42  profilanswer
 

n°1426111
_darkalt3_
Proctopathe
Posté le 16-08-2006 à 15:49:46  profilanswer
 

compilo ? environnement ?
pourquoi tu ne veux pas de ce tutoriel ?


---------------
Töp of the plöp
n°1426127
Kimilsung
Posté le 16-08-2006 à 16:03:25  profilanswer
 

_darkalt3_ a écrit :

compilo ? environnement ?
pourquoi tu ne veux pas de ce tutoriel ?


compilo? Dev C++ 4.9.9.2
environnement? Windows Xp mais si possible portable vers d'autres
pourquoi tu ne veux pas de ce tutoriel ? déjà lu. Il m'indique pas les erreurs des points d'entrée.
En fait tout baigne (presque), sauf que VBA (sous Excel) n'arrive pas à trouver la fonction dans la dll

n°1426343
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 16-08-2006 à 23:27:51  profilanswer
 

ta dll, comment l'appelles tu ? est-ce une dll COM ? comment l'as tu compilée ?
poste le code VBA dans lequel tu appelles ta dll


Message édité par Harkonnen le 16-08-2006 à 23:29:56

---------------
J'ai un string dans l'array (Paris Hilton)
n°1426434
Kimilsung
Posté le 17-08-2006 à 09:53:46  profilanswer
 

Mon fichier dll s'appelle Dll_fichier.dll

Citation :

est-ce une dll COM ?


Qu'est-ce t'appelles une dll COM? C'est quoi?
 

Citation :

comment l'as tu compilée ?


Dans Dev C++ Fichier>Nouveau>Projet> Dll projet C++.
 
Le fichier libDll_fichier.def contient :
EXPORTS
 _Z10HelloWorldv@0 @ 1
 _Z10HelloWorldv = _Z10HelloWorldv@0 @ 2
 
-----  dll.h -----

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <windows.h>
  4. #define export __declspec(dllexport) /* définit la macro EXPORT  */
  5. export void __stdcall HelloWorld(void );
  6. int __stdcall Addition( int a, int b);


----- dllmain.cpp -----

Code :
  1. #include "dll.h"
  2. int __stdcall Addition( int a, int b){
  3.     int c;
  4.     c=a+b;
  5.     return c;   
  6. }
  7. void __stdcall HelloWorld(void )
  8. {
  9.     MessageBox(NULL,"Hello !","Message",MB_OK);
  10. }


 
Je précise je suis sous Excel.
 --- code VBA ---

Code :
  1. Public Declare Sub HelloWorld Lib "C:\Dll\Dll_fichier.dll" ()  ' mon répertoire
  2. Public Declare Function Addition Lib "C:\Dll\Dll_fichier.dll" (a As Long, b As Long) As Long
  3. Sub test()
  4.     Dim retour As Long 'code de retour de la fonction de la Dll
  5.     Call HelloWorld
  6.     retour = Addition(2, 3)
  7.     MsgBox retour
  8. End Sub


Voilà j'espère que ça peut aider.
Je dispose également de Cygwin.


Message édité par Kimilsung le 17-08-2006 à 09:54:42
n°1426506
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-08-2006 à 11:30:11  profilanswer
 

t'as déclaré une réference à ta dll par le menu Outils->Références ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1426686
Kimilsung
Posté le 17-08-2006 à 15:13:59  profilanswer
 

J'ai déclaré aucune référence. Outils -> Références ça existe pas sous Dev C++.
Sinon je peux le compiler à la Linux avec cygwin. Déjà essayé aussi par de point d'entrée  :( .

n°1426693
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-08-2006 à 15:18:25  profilanswer
 

Kimilsung a écrit :

J'ai déclaré aucune référence. Outils -> Références ça existe pas sous Dev C++.


euh... non, c'est dans Excel qu'il faut la déclarer


---------------
J'ai un string dans l'array (Paris Hilton)
n°1426722
Kimilsung
Posté le 17-08-2006 à 15:44:34  profilanswer
 

Ah oui pardon!
Dans Microsoft Visual Basic j'ajoute la référence et il me répond "impossible d'ajouter une référence au fichier spécifié". Mon fichier se trouve dans C:\Dll . Je ne suis pas administrateur sur ma machine. Merci quand même.
Sinon personne connaît un bon tutorial??

n°1431187
joburg
Posté le 25-08-2006 à 09:43:37  profilanswer
 

Est-ce possible de faire passer des vecteurs ?
 
(x() as long) dans Excel -> double* en C++ ?

mood
Publicité
Posté le 25-08-2006 à 09:43:37  profilanswer
 

n°1431204
joburg
Posté le 25-08-2006 à 09:59:55  profilanswer
 

ou plutot  (x() as double) dans Excel -> double* en C++ ? ;)


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

  [VBA] appels fonctions .dll C/C++

 

Sujets relatifs
EXCEL VBA - Bug pour affecter valeurs dans tableauBouton VBA permettant Somme 2 colonnes en 1 pour impression...
Saut de ligne sous ACCESS dans des Label en VBASaut de ligne sous ACCESS dans des Label en VBA
[VBA -EXCEL] AIDE SVP !! copie modele + nom + titre + case a cocher..Transmission d'un argument entre deux fonctions
textbox et listbox effacement d'un formulaire VBAImporter des données excel sur le web vers un programme VBA
[VBA] Compter le nombre de checkboxes cochéesVBA: Masquer des lignes d'un grand fichier Excel rapidement
Plus de sujets relatifs à : [VBA] appels fonctions .dll C/C++


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