begin process at 2012 05 28 13:04:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Appel de fonctions dans une dll


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Appel de fonctions dans une dll

jeudi 17 avril 2003 à 09:54:48 | Appel de fonctions dans une dll

sena

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(




jeudi 17 avril 2003 à 10:46:36 | Re : Appel de fonctions dans une dll

BruNews

Administrateur CodeS-SourceS
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...


-------------------------------
Réponse au message :
-------------------------------

> 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(
>
>
>
>
>
jeudi 17 avril 2003 à 12:21:08 | Re : Appel de fonctions dans une dll

sena


OK merci beaucoup
réponse simple et efficace.


-------------------------------
Réponse au message :
-------------------------------

> 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...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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(
> >
> >
> >
> >
> >
>
dimanche 20 avril 2003 à 06:24:51 | Re : Appel de fonctions dans une dll

CoreBreaker

Pour infos pour éviter les decorations:
#ifdef __cplusplus
extern "C" {
#endif
...
// code
...
#ifdef __cplusplus
}
#endif


Core Breaker


-------------------------------
Réponse au message :
-------------------------------

> 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...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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(
> >
> >
> >
> >
> >
>


Cette discussion est classée dans : dll, exporter, fonctions, declspec, dllexport


Répondre à ce message

Sujets en rapport avec ce message

DLL [ par neophenix83 ] Bonjour,j'ai un fichier C qui contient des fonctions déclarées comme ceci :MY_DLLEXPORT int fonction1( )avec #if defined(BUILD_PHAPI_DLL)#define MY_DL pb DLL et template [ par axiagame ] Bonjour, je suis en train de tenter de créer une DLL, mais malheureusement je suis heurté à un problème : Je souhaite créer une fonction en template q Intégration DLL Csharp dans projet C++ [ par swyms ] bonjour à tous!Voila, j'ai une application développé en C++ avec visual studio 2002.Aujourd'hui, on me demande d'utiliser une DLL fait en CSHARP pour importer une dll [ par omtp13 ] Salut tout le monde,je désire importer les fonctions d'une dll pour que ces fonctions puissent être utilisées dans le code d'une seconde dll.j'ai ente appel d'une fonction sous dev c++ (fftw) [ par gbreux ] Bonjour,je réalise une dll sous dev c++. J'arrive à créer une dll seulement je fais appel à des fonctions contenue dans des dlls autres qui se situe d Créer une dll en C avec Code::Blocks [ par seb5 ] Salut à tous,Je souhaite placer certaines de mes fonctions dans une dll pour pouvoir les réutilisé dans plusieurs programmes. Je programme en C sous W fonctions d'une DLL [ par minet03 ] Salut tout le monde,J'aimerais savoir si il y a un moyen de connaitre les fonctions qui se trouvent dans une DLL pour pouvoir les utiliser dans des pr DLL partagée en C++ [ par 96sl ] Bonjour,j'ai développé une DLL partagée en C++ que j'appel à partir d'une ou plusieurs applications écrites en .NET C#.Lors de l'exécution tout se pas musique midi et dll [ par ccinfonews ] bonjours à la communautéje vais cherché à être précis (peut être trop !!!)je programme sous VB6 (tout le monde n'est pas parfait)j'ai développé un pro Exportation de string sur dll [ par wasaikos ] Bonjour,Je suis sur un projet où je développe une application IHM sous WinDev11 qui fait appel à des DLL en C++ (codées sous Visual 6.0).Seulement je


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales