DLL VC++ linkée avec un prog GCC

Résolu
kanar Messages postés 20 Statut Membre -  
Char Snipeur Messages postés 10112 Statut Contributeur -
Bonjour,

Je me posait une question toute bête avant d'écrire des bêtises dans document la voici :

Est-ce qu'il est possible d'utiliser une DLL compilée avec un enviro de compilation MicroSoft avec un programme compilé avec l'environnement GNU MinGW, et vice-versa ???

Merci d'avance,

4 réponses

Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
Salut.
Ta question n'est pas si bête que ça. Au premier abord, on pourrai pensé qu'il n'y a pas de raison que ça soit impossible, après tout c'est du C++, et il est bien possible de lier avec des programmes issue d'autre langages.
Mais il existe plusieurs convention d'édition des liens (elf, efi, srec etc.), il faut donc faire attention à ça.
Ne connaissant pas assez MS, je ne connait pas leur façon de faire et je ne peux donc pas répondre directement à ta question.
1
kilian Messages postés 8854 Statut Modérateur 1 526
 
dll c'est du format PE. Donc c'est un standard. Donc à priori un compilateur qui produit ou utilise une dll est censé suivre ce standard.
Après là où je me pose des questions, c'est à propos du C++ dans les conventions de nommage des méthodes dans le binaire.

Mais je pense que ça devrait passer.
0
kanar Messages postés 20 Statut Membre
 
C'était à la convention de nommage que je pensais principalement, je sais que si c'est de la librairie statique, entre du MS et du GNU ça marchera pas à moins de trafiquer le .lib et de réadapter les noms ... enfin bon c pas gégé :)

C un peu dommage je peux même pas tester, j'ai finit mon stage et j'ai plus VC++, mais je vote pour le format binaire standardisé ;), c'est ce qui me paraissait le plus logique.

Merci à tous les deux
-1
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
il y a peut être des options de compilation pour le nommage.
Par exemple le compilateur fortran met des underscrore ("_") en plus dans les nom de fonction. Il est possible de modifier ce comportement avec l'option "-fno-underscoring" lors de la compilation.
-1