2011-03-17 1 views
2

Lorsque vous utilisez MS C ou GNU C où vous devez utiliser __cdecl, prototypes pointeur de fonction ressemblent:Comment obtenir Doxygen pour analyser le pointeur de fonction typedefs contenant __cdecl?

  • typedef int (__cdecl * funcname_ptr) (void * arg1, const char * arg2);
  • typedef int (__attribute __ ((cdecl)) * funcname_ptr) (void * arg1, const char * arg2);

Il semble que le texte précédant * funcname_ptr provoque l'échec de l'analyseur de doxygen.

Si vous avez rencontré ce problème, avez-vous trouvé une solution de contournement?

Répondre

1

Je n'ai pas rencontré ce problème, mais une solution de contournement peut être de prédéfinir __cdecl comme une macro qui évalue à rien dans le fichier de configuration Doxygen à l'aide de l'option PREDEFINED.

+0

Merci pour la suggestion. Malheureusement, cela ne change pas la sortie de Doxygen. – ReluctantBIOSGuy

+0

Il s'est avéré que vous aviez raison, mais je n'ai pas tout à fait réussi ma tentative. J'ai mal compris la documentation de Doxygen et j'ai pensé à tort que j'avais seulement besoin de mettre EXPAND_ONLY_PREDEF à YES. Il s'avère que vous devez également définir MACRO_EXPANSION sur YES. Donc, la solution complète est de: '1) Définir MACRO_EXPANSION = YES, 2) Définir EXPAND_ONLY_PREDEF = YES, 3) Définir PREDEFINED = __cdecl = __attribute __ ((cdecl)) = AnythingElseYouWantToDisappear =' – ReluctantBIOSGuy

Questions connexes