Accueil > Forum > > > > Problème d'interfacage d'une DLL écrite en C++ avec vba
Problème d'interfacage d'une DLL écrite en C++ avec vba
jeudi 15 septembre 2005 à 19:12:52 |
Problème d'interfacage d'une DLL écrite en C++ avec vba

pierrinot
|
Bonjour,
Je dois créer une DLL utilisable par un programme VBA. Je tombe sur un problème d'entête de fonctions.
La DLL est bien compilée, mais lorsque je m'en sers sur excel, je suis obligé de supprimer une valeur des paramètres.
En C++ :
void _stdcall Initialize
(
int n0,
int n1,
int n2,
int n3
)
Dans vba :
Public Declare Function Initialize _
Lib "C:\Documents and Settings\...\testDLL.dll" _
( _
ByVal n0 As Long, _
ByVal n1 As Long, _
ByVal n2 As Long)
Problème de types ?
J'ai essayé avec Integer ça donne la même chose.
(je recharge la dll avant de tester)
Je souhaiterais également faire des classes à utiliser ensuite en vba, mais ça semble difficile à faire.
Existe t'il de la literature sur ce sujet ?
Merci à tous !
|
|
jeudi 15 septembre 2005 à 22:53:09 |
Re : Problème d'interfacage d'une DLL écrite en C++ avec vba

BruNews
|
Réponse acceptée !
Jamais vu qu'on supprime des params d'une dll, doit y avoir un malaise dans la dll, faudrait voir pour diagnostiquer. Param int ou long depuis dll doit être 'As Long' depuis VB et pas autre chose.
Des classes dans la dll ??? A part la faire grossir inutilement je ne vois pas l'intérêt.
ciao... BruNews, MVP VC++
|
|
vendredi 16 septembre 2005 à 00:28:24 |
Re : Problème d'interfacage d'une DLL écrite en C++ avec vba

nicooooo1
|
bsr,
D apres moi la déclaration de la fonction serait plutot :
Public declare sub Initialise..........
et pas function
|
|
vendredi 16 septembre 2005 à 08:40:42 |
Re : Problème d'interfacage d'une DLL écrite en C++ avec vba

pierrinot
|
Merci pour l'info des classes, je souhaitais utiliser des classes pour
définir les intrants de la fonction - mais si c'est une pratique qui ne
se fait pas, ça me convient trés bien.
Je pense que j'ai un problème de compilation, j'ai récupéré un code
source sur ce site, j'arrive à utiliser la DLL livrée mais pas celle
que j'obtiens aprés compilation.
Pas de littérature sur les DLL et autres techniques Microsoft ?
Y a t-il une limitation sur le nombre de paramètres à passer en paramétre ?
Faut-il plutôt utiliser WINAPI ou bien _stdcall ?
Bien des éléments me sont encore obscurs...
En tout cas, merci les gars pour vos réponses claires et rapides !
|
|
vendredi 16 septembre 2005 à 09:32:34 |
Re : Problème d'interfacage d'une DLL écrite en C++ avec vba
|
vendredi 16 septembre 2005 à 10:36:24 |
Re : Problème d'interfacage d'une DLL écrite en C++ avec vba

pierrinot
|
Merci,
J'ai trouvé ce livre qui semble intéressant :
http://books.global-investor.com/books/20387.htm?ginPtrCode=10202
Sinon, je pense que j'ai réellement un problème d'option de compilation
car toutes les fonctions que je créé en ne passant rien en paramètre
fonctionne, ça plante dès que je mets des paramètres (même un).
Et pourtant je sais que le programme rentre dans la DLL, mais je ne sais pas à quel moment ça plante.
...
|
|
vendredi 16 septembre 2005 à 11:07:16 |
Re : Problème d'interfacage d'une DLL écrite en C++ avec vba

BruNews
|
C'est l'export qui doit déconner. Tu reprends bien le modèle de celle dont j'ai donné le lien au dessus ? Tu bosses sur VC++ ?
ciao... BruNews, MVP VC++
|
|
vendredi 16 septembre 2005 à 11:17:29 |
Re : Problème d'interfacage d'une DLL écrite en C++ avec vba

pierrinot
|
Réponse acceptée !
C'est bon ça fonctionne, je pense qu'il y avait plusieurs problèmes imbriqués :
- Mauvaise correspondance des types entre VC++ et VBA
- Et mauvaise définition du .h
Voilà ce que j'ai maintenant :
#ifdef TESTDLL_EXPORTS
#define TEST_DLL_API __declspec(dllexport) __stdcall
#else
#define TEST_DLL_API __declspec(dllimport) __stdcall
#endif
extern "C" long TEST_DLL_API GetTestValue(long value);
Merci pour vos aides !
|
|
Cette discussion est classée dans : vba, problème, long, int, dll
Répondre à ce message
Sujets en rapport avec ce message
problème de dll pour VBA pour un nul [ par wismerhill__ ]
Bonjour à tous, je suis grand débutant en C++ et je m'y met apres VBAJe voudrais faire une dll en c++ car VBA ne va assez vite, le problème c'est que
Probleme de convention? d'appel de dll dans vba [ par Jbs106 ]
J'ai ouvert un projet en vc++ studio express 2008. projet win32, dll, nommée tutorial, et dans le fichier tutorial.cpp, j'ai ajouté trois fonctions:
chargement d'une DLL impossible [ par totoscill ]
Bonjour, Je rencontre un problème lors de l'execution de mon application (je travaille sous XP et visual studio 2008). Mon processus fait appelle à
Mince ! Mon flux fstream fonctionne très mal [ par Davy974 ]
Bonjour à tour, mon code ne fonctionne pas très bien ! Sauriez vous dire pourquoi ! ------------fstream.h----------------------- #ifndef CORE_FSTREA
Gestion des long int [ par kiira31 ]
Bonjour, Je code en ce moment la fonction printf. Je suis en train de gerer l affichage d'un nombre mais j'ai un souci pour gerer les long. Voici mo
Code::Block DLL pour l'utiliser dans VB [ par runo ]
Bonjour, je souhaite créer une DLL en C (ou C++) avec Code::Block que j'utiliserai ensuite sous VB (en fait excel 2003)... Je crée donc mon projet DL
problème avec l'alias d'une DLL [ par marco62118 ]
bonjour j'ai créé une dll avec "visual 2008 c++ express" apparement la dll est créé je l'utilise dans un programe VB mais lors de la déclaration "
problème pour utiliser une DLL en C [ par aurhas ]
Bonjour, j'ai une DLL FTDI pour laquelle je dispose des fichiers dll, lib et h. J'ai également une doc pour décrire les fonctions, leurs paramètres e
Problème pendant link avec dll [ par svince ]
Bonjour, Je travaille sous Eclipse/Windows en C++. J'ai créé une dll à partir d'un premier projet. Je souhaite utiliser cette dll dans un second proj
problème de allocation de tableau [ par boualiasma ]
Bonsoir, Je voulais copier le contenu de fichier "exemple.txt" dans un tableau dynamique t de taille inconnue en avance. J'utilise le tableau pour fa
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|