cs_sena
Messages postés126Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention15 février 2005
-
17 avril 2003 à 09:54
CoreBreaker
Messages postés540Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 5 octobre 2007
-
20 avril 2003 à 06:24
Bonjour,
j'ai un pb un peu bizarre.
j'ai créer des fonctions dans une dll.
j'utilise __declspec(dllexport) pour dire qu'il faut exporter ces fonctions.
Ex dans mon .h : __declspec(dllexport) int maFonc( char *);
el le .cpp :
int maFonc( char * chaine )
{ .............}
Quand j'apelle cette fonction sous FoxPro, NO PROBLEMO, que ce soit en debug ou Run.
Par contre en VB, je suis obliger de créer l'éxécutable utilisant la dll et de le lancer pour ke ca fonctionne correctement. Sinon kan j'exécute mon prog VB en pas a pas, j'ai l'erreur suivante :
"Convention d'appel de la dll incorecte '49'"
On m'a donc dis d'utiliser _stdcall
Mais avec _stdcall je n'arrivais plus a exporter mes fonctions, car maintenant mes programmes ne 'voient' plus les fonctions exportées par la dll.
Alors j'ai ajouté un .def dans lequel je mets juste le nom des fonctions ke je souhaite exporter.
ET LA CA MARCHE !
Mais maintenant j'ai remarquer que __declspec(dllexport) ne me servait plus a rien car ca marche même kan je ne le mets po !
Mes questions :
Pourkoi __declspec(dllexport) n'exporte plus a partir du moment ou j'ai ajouté _stdcall ? Est-ce normal ou bien est-ce ke je fais kelke choz de mal?
Peut on me dire s'il est préférable d'utiliser __declspec(dllexport) pour exporter ou bien utiliser un .def ?
Merci beaucoup parce ke la, tout se mélange pour moi :o(
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 avril 2003 à 10:46
Serait long a expliquer mais en tous cas ne te sert pas de __declspec(dllexport) et prefere toujours __stdcall et le .def pour exporter. Pas de decoration des noms donc accessible par tout autre langage.
BruNews, ciao...