[DEV C++]DLL EN C++ POUR UN PROGRAMME EN C++

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 31 mars 2003 à 19:50
fabrej0 Messages postés 1 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 18 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.

https://codes-sources.commentcamarche.net/source/10610-dev-c-dll-en-c-pour-un-programme-en-c

fabrej0 Messages postés 1 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 18 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és 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
23 juin 2006 à 16:07
pile poile ce que je cherchai :D
cs_Naze Messages postés 12 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 25 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és 3 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 28 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és 3 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 28 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és 77 Date d'inscription dimanche 9 juin 2002 Statut Membre Dernière intervention 18 mai 2007
2 avril 2003 à 13:39
merci bien :)
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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és 77 Date d'inscription dimanche 9 juin 2002 Statut Membre Dernière intervention 18 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és 104 Date d'inscription samedi 7 décembre 2002 Statut Membre Dernière intervention 17 août 2009
1 avril 2003 à 18:51
Bravo
bobidop Messages postés 9 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 30 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és 368 Date d'inscription mercredi 14 novembre 2001 Statut Membre Dernière intervention 1 septembre 2008
31 mars 2003 à 20:13
alors la... je dis bien joué. C'est pas que le code est extremement original, mais il a le mérite d'etre clair et court.
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. :)
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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...
Rejoignez-nous