2011-03-17 65 views
2

當使用MS C或GNU C在需要使用__cdecl,函數指針原型看起來像:如何讓Doxygen解析包含__cdecl的函數指針typedefs?

  • 的typedef INT(__cdecl * funcname_ptr)(無效* ARG1,常量字符* ARG2);
  • typedef int(__attribute __((cdecl)) * funcname_ptr)(void * arg1,const char * arg2);

似乎* funcname_ptr之前的文本會導致doxygen的解析器失敗。

如果您遇到此問題,是否找到了解決方法?

回答

1

我還沒遇到過這個問題,但是一種解決方法是預先將__cdecl定義爲一個宏,該宏在Doxygen配置文件中使用PREDEFINED選項評估爲無。

+0

感謝您的建議。不幸的是,它不會改變Doxygen的輸出。 – ReluctantBIOSGuy 2011-03-21 12:46:14

+0

事實證明你是正確的,但我沒有完全正確地嘗試我的嘗試。我誤解了Doxygen文檔,並錯誤地認爲我只需要將EXPAND_ONLY_PREDEF設置爲YES。事實證明,您還必須將MACRO_EXPANSION設置爲YES。因此,完整的解決方案是:1)設置MACRO_EXPANSION = YES,2)設置EXPAND_ONLY_PREDEF = YES,3)設置PREDEFINED = __cdecl = __attribute __((cdecl))= AnythingElseYouWantToDisappear = – ReluctantBIOSGuy 2011-03-22 21:14:39