2011-03-17 42 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