Extern "C"

Résolu
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 16 nov. 2006 à 20:25
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 17 nov. 2006 à 22:25
Salut:

une petite idée/explication sur le rôle de  extern "C"?

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 nov. 2006 à 20:30
évite la décoration des fonctions.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 nov. 2006 à 21:03
oui si tu compiles en C++, un prog C ne pourra pas accéder aux fonctions vu leur déco exotique.
De plus, la déco dépend aussi du compilo C++, une vraie calamité.
Faut toujours exporter en C.
J'utilise toujours le .def en DLL, on y fait ce qu'on veut.

ciao...
BruNews, MVP VC++
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
16 nov. 2006 à 20:57
Salut:

J'ai entendu parler de la décoration des fonctions lorsqu'on utilise un fichier .DEF pour écrire une DLL, si ne me trompe pas.

Est ce que la décoration des fonctions cause un problème?
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
16 nov. 2006 à 21:06
Salut:

Donc ce mot extern "C" permet de préserver une sorte de compatibilité des programmes C vis à vis des compilateurs utilisés (compilateur C ou C++).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NairodDorian Messages postés 130 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 août 2008
17 nov. 2006 à 20:23
extern "C" signifie que tu exportes / utilises la convention du C soit cdecl pour ta fonction.
La convention du C++ etant thiscall.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 nov. 2006 à 22:25
Aucun rapport.
SVP il faut demander avant de balancer pareils trucs, ça pourrait mettre en erreurs du monde et ce n'est pas vraiment le but du forum.

C'est UNIQUEMENT pour la déco du nom de fonction et rien d'autre.
La convention d'appel est spécifiée (si on la met) devant le nom de fonction.
Toute API (fonction de DLL) devrait d'ailleurs être exportée ainsi:
extern "C" __stdcall (et non cdecl)
ça garantit que les langages interprétés pourront s'en servir.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous