【发布时间】:2015-08-20 08:39:48
【问题描述】:
我想记录一个函数的返回值。问题是该函数可能有很多退出点,我不想在每个退出点之前添加一个日志调用。
我想过有一个内部对象负责进行Log 调用。但是,我必须在每个 return 语句之前通知它返回值。
我还考虑过在从函数返回之前创建一个调用记录器的宏。比如:
#define RETURN(ret) Logger.log(__FUNCTION__, ret); return ret;
但我想避免这样做。
对于如何轻松轻松地实现这一目标还有其他想法吗?
谢谢
【问题讨论】:
-
为什么不让调用者记录返回值?
-
函数是从 DLL 导出的。我希望 DLL 记录所有 API 调用。
-
@user 如果是 MSVC,有一种自动的方法可以做到这一点,但它绝对不是好和容易(相反它是顽皮和困难的)。可以生成一个 DLL 包装另一个并拦截所有调用。