8 votes

Comment forcer la convention d'appel cdecl pour les fonctions déclarées dans un fichier d'en-tête spécifique ?

Bonjour Mon projet VC2008 utilise les conventions d'appel stdcall. J'utilise une bibliothèque externe qui a été construite avec la convention d'appellation cdecl, mais elle ne mentionne pas la convention d'appel dans la déclaration des fonctions.

Je voudrais savoir si VC a une sorte de #pragma ou un autre mot-clé qui forcerait une convention d'appel spécifique pour l'ensemble du fichier d'en-tête.

un peu comme le truc du "C" externe mais pour les conventions d'appel :

extern "C" 
{
#include <file1.h>
#include <file2.h> 
}

Quelqu'un en connaît ?

4voto

David Heffernan Points 292687

Vous pouvez spécifier la convention d'appel par :

  • Ne faites rien et vous obtenez le défaut de cdecl.
  • Précisez __cdecl explicitement (ou peut-être par le biais d'une macro).
  • Choisir d'utiliser cdecl dans toute une unité de traduction en compilant avec /Gd.

Il n'y a pas de pragma ou quelque chose de similaire pour contrôler la convention d'appel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X