BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
31 mars 2003 à 19:50
fabrej0
Messages postés1Date d'inscriptionsamedi 13 octobre 2007StatutMembreDernière intervention18 mai 2010
-
18 mai 2010 à 11:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
fabrej0
Messages postés1Date d'inscriptionsamedi 13 octobre 2007StatutMembreDernière intervention18 mai 2010 18 mai 2010 à 11:05
Je viens de lire et j'étais dans le même cas :
"ben moi j'ai pas resolu mon probleme de decoration. J'utilise pas de .def parceque je sais pas comment dire a devc++ de l'utilisé (il ignore les param de linkage quand je suis en type DLL donc pas de '--def mon.def')."
J'ai finalement trouvé ! Il faut tout d'abord compiler une première fois. DevC++ crée un fichier DEV et un Makefile. Ensuite il faut copier le Makefile.win pour en faire un Makefile2.win. Ainsi que fichier.dev pour en faire un fichier2.dev. Dans le fichier2.dev, il faut substituer :
MaFonction @12 @1
par : MaFonction = MaFonction @12 @1
Il faut également modifier dans Makefile2, le nom du fichier DEV qui devient fichier2.dev.
Mais surtout il faut remplacer dans dllwrap :
--output-def
par : --def
sinon notre nouveau fichier2.dev va se faire écraser !!
Après tout ça, il faut juste indiquer à DevC++ qu'il doit utiliser Makefile2 (dans les options du projet).
A+
Jean-Luc
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 23 juin 2006 à 16:07
pile poile ce que je cherchai :D
cs_Naze
Messages postés12Date d'inscriptionjeudi 10 octobre 2002StatutMembreDernière intervention25 août 2007 14 oct. 2003 à 02:18
Salut tout le monde,
Est-ce que c'est possible d'utiliser une DLL créer avec DevC++ dans un projet C# de VS.NET ?
merci
chichi3373
Messages postés3Date d'inscriptionvendredi 22 août 2003StatutMembreDernière intervention28 août 2003 6 sept. 2003 à 15:55
Re salut
j'utilise pas exactement la solution :
#define MYLIBAPI extern "c" __declspec(dllexport)
int MYLIBAPI msgbox3(char *buffer);
mais :
#define MYLIBAPI extern "c" __declspec(dllexport)
MYLIBAPI int msgbox3(char *buffer);
sinon ca plante a la compile !!! (parse error before extern)
Voila
chichi3373
Messages postés3Date d'inscriptionvendredi 22 août 2003StatutMembreDernière intervention28 août 2003 6 sept. 2003 à 15:45
Salut
ben moi j'ai pas resolu mon probleme de decoration. J'utilise pas de .def parceque je sais pas comment dire a devc++ de l'utilisé (il ignore les param de linkage quand je suis en type DLL donc pas de '--def mon.def').
Pour la solution extern "c" __declspec(dllexport), elle marche bien pour les variable (type int ou meme class) mais pas pour les fonction.
Un detail, pour oriente la reponse, j'utilise la dll sous delphi, donc peu m'importe que le nom sois correcte ou pas dans le fichier lib???.a
Merci a vous.
cs_camel
Messages postés77Date d'inscriptiondimanche 9 juin 2002StatutMembreDernière intervention18 mai 2007 2 avril 2003 à 13:39
merci bien :)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 2 avril 2003 à 12:27
exemple d'un .def
EXPORTS
bnFunc1
bnFunc2
Stop ici, seulement liste nom des fonctions a exporter, inclure le .def dans le projet et va tout bon.
ciao...
cs_camel
Messages postés77Date d'inscriptiondimanche 9 juin 2002StatutMembreDernière intervention18 mai 2007 2 avril 2003 à 11:35
tranquille le code .. et la remarque de BruNews est très interessante. Mais moi je ne sais pas comment fonctionne les .def si qqn pouvais m'expliquer ? thx
RaphAstronome
Messages postés104Date d'inscriptionsamedi 7 décembre 2002StatutMembreDernière intervention17 août 2009 1 avril 2003 à 18:51
Bravo
bobidop
Messages postés9Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention30 juillet 2006 31 mars 2003 à 20:26
yep c bien cool de mettre tout ca mais moi je galere encore avec les pointeurs je ne comprend pas grand chose malheureusement...
jy reviendrais pe etre plus tard sur ce thread!
thx en tt K;-)
cs_Xs
Messages postés368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDernière intervention 1 septembre 2008 31 mars 2003 à 20:13
De plus, le commentaire de BruNews est trés, mais alors trés, utile : éviter les décorations est l'une des grosses questions qui a été posée, et je crois non résolue, sur le site www.developpez.com . Et toi, tu y a répondu rapidement et clairement. Decidement, ce soir, je me coucherais moins betes. :)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 31 mars 2003 à 19:50
pour eviter decoration des noms tu peux mettre le nom de tes fonctions exportees dans un .def
2eme solution, extrait du Richter, moi je me sers du .def
#define MYLIBAPI extern "c" __declspec(dllexport)
int MYLIBAPI msgbox3(char *buffer);
ciao...
18 mai 2010 à 11:05
"ben moi j'ai pas resolu mon probleme de decoration. J'utilise pas de .def parceque je sais pas comment dire a devc++ de l'utilisé (il ignore les param de linkage quand je suis en type DLL donc pas de '--def mon.def')."
J'ai finalement trouvé ! Il faut tout d'abord compiler une première fois. DevC++ crée un fichier DEV et un Makefile. Ensuite il faut copier le Makefile.win pour en faire un Makefile2.win. Ainsi que fichier.dev pour en faire un fichier2.dev. Dans le fichier2.dev, il faut substituer :
MaFonction @12 @1
par : MaFonction = MaFonction @12 @1
Il faut également modifier dans Makefile2, le nom du fichier DEV qui devient fichier2.dev.
Mais surtout il faut remplacer dans dllwrap :
--output-def
par : --def
sinon notre nouveau fichier2.dev va se faire écraser !!
Après tout ça, il faut juste indiquer à DevC++ qu'il doit utiliser Makefile2 (dans les options du projet).
A+
Jean-Luc
23 juin 2006 à 16:07
14 oct. 2003 à 02:18
Est-ce que c'est possible d'utiliser une DLL créer avec DevC++ dans un projet C# de VS.NET ?
merci
6 sept. 2003 à 15:55
j'utilise pas exactement la solution :
#define MYLIBAPI extern "c" __declspec(dllexport)
int MYLIBAPI msgbox3(char *buffer);
mais :
#define MYLIBAPI extern "c" __declspec(dllexport)
MYLIBAPI int msgbox3(char *buffer);
sinon ca plante a la compile !!! (parse error before extern)
Voila
6 sept. 2003 à 15:45
ben moi j'ai pas resolu mon probleme de decoration. J'utilise pas de .def parceque je sais pas comment dire a devc++ de l'utilisé (il ignore les param de linkage quand je suis en type DLL donc pas de '--def mon.def').
Pour la solution extern "c" __declspec(dllexport), elle marche bien pour les variable (type int ou meme class) mais pas pour les fonction.
Un detail, pour oriente la reponse, j'utilise la dll sous delphi, donc peu m'importe que le nom sois correcte ou pas dans le fichier lib???.a
Merci a vous.
2 avril 2003 à 13:39
2 avril 2003 à 12:27
EXPORTS
bnFunc1
bnFunc2
Stop ici, seulement liste nom des fonctions a exporter, inclure le .def dans le projet et va tout bon.
ciao...
2 avril 2003 à 11:35
1 avril 2003 à 18:51
31 mars 2003 à 20:26
jy reviendrais pe etre plus tard sur ce thread!
thx en tt K;-)
31 mars 2003 à 20:13
Cependant => http://www.cppfrance.com/article.aspx?Val=871
De plus, le commentaire de BruNews est trés, mais alors trés, utile : éviter les décorations est l'une des grosses questions qui a été posée, et je crois non résolue, sur le site www.developpez.com . Et toi, tu y a répondu rapidement et clairement. Decidement, ce soir, je me coucherais moins betes. :)
31 mars 2003 à 19:50
2eme solution, extrait du Richter, moi je me sers du .def
#define MYLIBAPI extern "c" __declspec(dllexport)
int MYLIBAPI msgbox3(char *buffer);
ciao...