Salut,
Merci beaucoup, j'avais jamais compris ce a quoi ca servait.
-------------------------------
Réponse au message :
-------------------------------
> Non pas du tout.
> Le C++ exporte les noms des fonctions d'une DLL sous forme décorée (exemple:
s400_ipdetail@@YGPADHHQAD@Z). Quand toi tu utilises une DLL, tu ne donnes pas le nom C++ mais le nom C (exemple:
s400_ipdetail) de la fonction. Le
extern "C" spécifie simplement au compilateur d'exporter la fonction selon la convention du C et non du C++.
>
> Kaid -
kaid.fr.st>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> > Désolé mais je comprends pas le extern "C" .
> > Une fonction dans une DLL ne peut etre qu'en C ? c'est un peu comme un "cast" ?
> > Merci
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > - Si tu utilises le
__declspec (dllexport) tu n'as normallement pas besoin de maintenir un fichier .DEF à moins que tu sois obligé de le faire pour ton autre programme.
> > >
> > > - Tu exportes des noms décorés (C++) et non des noms C. Il faut donc remplacer:
> > >
> > >
> > > #define export __declspec (dllexport) |
> > >
> > > par
> > >
> > >
> > > #define export extern "C" __declspec (dllexport) |
> > >
> > > - Ton paramètre
char[150] doit être remplacé par un
char* car on ne peut pas définir la taille d'un tableau dans le prototype d'une fonction.
> > >
> > >
> > > Kaid -
kaid.fr.st> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > >
> > > > MOLOCH
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Que signifie cette erreur ?
> > > > >
> > > > > hop.def : warning LNK4017: s400_ipdetail@@YGPADHHQAD@Z statement not supported for the target platform; ignored
> > > > >
> > > > > Je n'arrive pas à utiliser les fonctions de ma dll ,pourtant j'utilise le code suivant pour exporter
> > > > >
> > > > >
> > > > > #define export __declspec (dllexport)
> > > > >
> > > > > export char * __stdcall s400_ipdetail(int,int,char [150]);
> > > > >
> > > > >
> > > > > Je n'ai pas d'erreurs à la compil mais impossible d'utiliser la dll depuis un autre programme.
> > > > >
> > > > > please help me
> > > >
> > >
> >
>